近日写程序,使用 apache common net 里的 FTPClient,往 FTP 服务器上,上传文件,以至失败。纠结了两三天,不能解决。
后上网 google 搜索,发现以下网址提到着这件事情:
Java 7 prevents FTP transfers on Windows Vista and 7 if firewall is on. Any ideas?
http://stackoverflow.com/questions/6990663/java-7-prevents-ftp-transfers-on-windows-vista-and-7-if-firewall-is-on-any-idea
里面提到,这是 java 的一个 bug(Submit Date, 11-AUG-2011 ):
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7077696
但是 Sun 公司标注这是一个低级别的 bug。
具体原因是:在安装有 IPv6 和 IPv4 的计算机上,会使用一种 IPv6 模拟的 IPv4(The only difference between JDK7 and older releases is that the JDK is using IPv6 sockets when IPv6 is enabled and so IPv4-mapped IPv6 addresses are used),而 windows 防火墙会把这种模拟的 IPv4 数据挡住。
我很奇怪,它只挡住了 FTP 命令 PASV, 对于FTP 登录操作什么的,没有挡住。
最后,Sun 公司给出解决方法:加一个 JVM 启动参数:
run with -Djava.net.preferIPv4Stack=true (which disables IPv6 and uses AF_INET sockets exclusively)
更多信息请查看 java进阶网 http://www.javady.com/index.php/category/thread
分享到:
相关推荐
压缩包里是源代码和所需的jar包,还包括一个已经打成jar文件直接可以运行的文件。 代码有部分参考自互联网,已经做过修正。 根据需求,代码还可以精简。 启动类:dzw.Start 配置文件:sys.properties 检测时间间隔在...
JAVA获取FTP文件列表,功能齐全。包括:链接到服务器,上传文件到FTP服务器,从FTP服务器上下载文件并返回下载文件长度,返回FTP目录下的文件列表,删除FTP上的文件及目录,关闭链接。
Java 实现对比ftp文件和本地文件的修改时间 ftp服务器文件比本地文件新时 把服务器文件下载覆盖本地文件 更新本地文件
java,判断ftp中文件是否存在
java实现的ftp文件上传
使用Java写的完整的上传下载Ftp上的文件案例。 请大家参考。 作者:宋海康
java实现连接登录Ftp,下载Ftp指定文件夹下的所有文件,并解压所有压缩文件,同时支持对指定文件夹进行文件压缩
对FTP服务器文件的基本操做:上传下载递归目录遍历等。
java使用FTP上传文件,非常实用 包括创建ftp链接,上传
GetButton部分为从FTP服务器下传一个文件; PutButton部分为向FTP服务器上传一个文件。 别忘了在程序中还要引入两个库文件(import sun.net.*,import sun.net.ftp.*)。 以下是这三部分的JAVA源程序: (1)显示FTP...
java工具类 ftp 文件比较 socket http
通过java程序来实现将本地文件上传到ftp服务器的功能
通过java代码来实现下载ftp服务器文件
java 读取FTP服务器文件使用于web服务器和liunx系统环境下。
JAVA实现FTP协议文件上传
java SSH和 FTP从服务器下载文件到本地.zip
远程ftp服务器会更新某目录下的一些文件,本地服务器需要定时下载这些更新后的文件 由最后修改时间判断该文件是不是最新的,然后下载更新的文件,这样可避免重复下载。 有jar包,有实例,完整可运行实例
一款由java实现ftp自动上传整个磁盘所有文件,包括目录,下面的JTextArea读取Log4j及命令行的信息,采用第三方ftpClient.不过下载的部分还没有时间去做.
java 连接 FTP 文件操作(上传,下载,删除,复制
JAVA中生成xml文件到指定路径和上传到ftp服务器到指定路径的方法。