之前项目上开发了一个上传文件的功能,使用的是sun.net.ftp.FtpClient这个类
连接服务器的代码大概如下:
public static FtpClient ftpClient = null;
ftpClient = new FtpClient();
ftpClient.openServer(server);
ftpClient.login(user, password);
之前这个功能是在jdk1.6基础上进行开发的。使用一切正常。
但是因为客户的环境上已经有了jdk1.7的环境,所以直接进行部署,发现文件上传失败,并且报如下错误:
cannont instantiate the type FtpClient
经过调查,发现
1) sun.net.ftp.FtpClient 这个类在jdk的帮助文档中没有具体的说明,也就是并没有对外公开。并且这个类是在jdk的 rt.jar中实现的。
2)jdk1.7下其构造函数FtpClient()被定义为private类型,所以无法new了。 在jdk1.7,已经换成了 FtpClient.create(ip)方法
同时,其他的一些方法也基本都改掉了,
如 ftpClient.openServer(server);
ftpClient.login(user, password);
就可以换成:ftpClient.login(user,null,password);
ftpClient.binary(); ---> ftpClient.setBinaryType();
ftpClient.put(remotefilename);--->ftpClient.putFileStream(remotefilename,true);
等。
如果这样的话,解决这个问题有2个办法:
1. 重写这个上传功能, 但是1.6版本怎么办呢, 可能需要根据jdk版本进行分开处理
2. 在 既存的服务器上,构筑1.6的环境,然后 tomcat 启动的时候,加载1.6的jdk。
这个在linux或者windows上都非常方便。 如果windowss上,tomcat是以服务形式启动的话,直接修改,关联的java 虚拟机源就可以了。
分享到:
相关推荐
NULL 博文链接:https://starbhhc.iteye.com/blog/2315455
org.apache.commons.net.ftp.FTPClient包,不错,在实际项目和产品中使用过。
sun.net.ftp.FtpClient,it.sauronsoftware.ftp4j.FTPClient,org.apache.commons.net.ftp.FTPClient三种不同的方式操作FTP
org.apache.commons.net.ftp.FTPClient FTP工具类,实现上传、下载、压缩到输出流下载等功能
FTP应用的jar包,主要用于java开发FTP上传下载
com.enterprisedt.net.ftp.FTPClient的jar包源代码以及文档 版本:edtftpj.2.2.2 2011-2-27
com.enterprisedt.net.ftp.FTPClient类库的jar包,可以用来实现对FTP服务器端的处理。
NULL 博文链接:https://vakinge.iteye.com/blog/487486
.net.ftp.FTPClient jar ,exaple, commons-net-2.0.jar
Apache Commons Net » 3.3 org.apache.commons.net.ftp.FTPClient
com.enterprisedt.net.ftp.FTPClient类库的jar包 edtFTPj-1.5.3.jar
org.apache.commons.net.ftp的官方完整jar包 放心使用
编译后可在bin下面生成System.Net.FtpClient.dll,用于C#在ftp上传时调用。
C#的FTP操作类库,支持FTP文件的上传,下载等等,封装好的可直接引用FtpClient; 如果自己单枪匹马写一个连接ftp服务器代码那是相当恐怖的(socket通信),有一个评价较高的dll库可以供我们使用。 那就是System...
上传了收集的最新的 commons-io-2.4.jar 包 和 commons-net-3.3.jar 以及 FTP java调用例子。net 包是一个用于操作Internet基础协议(Finger,Whois,TFTP,Telnet,POP3,FTP,NNTP,以及SMTP)的底层API。Net包...
jdk1.7以上专用FTP工具类,本人花了半天时间调试通过,拿来即用,具体用法详见main函数。
因为开发一个项目要用到FTP上传功能,用的是.NET平台,当时找了半天也没有关于FTP的类,索性就自己写了一个。找了很多资料,并参考了一下Java的sun.net.FtpClient类,总算可以拿出来用,所以就迫不及待的传上来给大家...
最近做了一个JAVA FTP协议 APACHE包内,上传,下载,查看,删除文件和目录的东西,拿出来给不明白的同学分享一下,希望得到帮助。搭建好服务器后,运行代码实现相应功能。