求助:移植linux上的奇怪问题!
写了一个FTP的上传的类,用的是enterprisedt的ftp包。
在Windows上运行很正常,在LINUX调这个类的构造函数都不调。不知为什么,帮忙看看有什么问题,也不报任何异常。JDK都是1.5,linux为红帽9 FC5
代码如下:
File file=new File(strLocalFile);
System.out.println( "file: "+strLocalFile);
if (file.exists())
{
System.out.println( "upload ftp ");
//FTP传送文件到远程主机
boolean bOk=false;
try {
System.out.println( "构造前 ");
FTPTransfer ftp=new FTPTransfer(1);
System.out.println( "构造后 ");//在linux上没有这条信息?
bOk = ftp.upload(strFTPHost, strFTPID, strFTPPass, strRemoteFile, strLocalFile);
} catch (Exception e) {
e.printStackTrace();
}
}
/////////////////
import com.enterprisedt.net.ftp.*;//申明没用到JNI
public class FTPTransfer
{
public FTPTransfer(int i)
{
System.out.println( "value: "+i);
//在windows上输出,在linux上无输出,奇怪
}
}
------解决方案--------------------我上次也是linux上传不行,也是到xx.storefile()时就停住了
后来用root用户登陆就可以了
lz可以也试一下用root,请供参考
------解决方案--------------------关于移植,你检查一下系统相关的一些地方:
文件分隔符。windows是 \ windows是 /
jdk版本。虽然你说你装的都是jdk1.5。但是你还是认真 java -version 一下,因为很多Linux都喜欢自带上自己的JRE。
访问权限。确认以下你有足够的权限在Linux下做相关的操作。
换行符号。 windows是\r\n Linux下是 \n (不过你这个应该不用考虑这个问题)
CLASSPATH,换了环境,CLASSPATH得确定也正确