日期:2014-05-20  浏览次数:20758 次

求助:移植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得确定也正确