| 问题如下图片: 
 之前项目上开发了一个上传文件的功能,使用的是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   |