写了一个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.*;//申明没用到JNIpublic class FTPTransfer
{
public FTPTransfer(int i)
{
System.out.println("value:"+i);
//在windows上输出,在linux上无输出,奇怪
}
}
在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.*;//申明没用到JNIpublic class FTPTransfer
{
public FTPTransfer(int i)
{
System.out.println("value:"+i);
//在windows上输出,在linux上无输出,奇怪
}
}
后来用root用户登陆就可以了lz可以也试一下用root,请供参考
程序还没走到那一步,连构造函数都没有执行。用-verbose参数看了一下class加载的过程也加载了FTPTransfer这个类
文件分隔符。windows是 \ windows是 /
jdk版本。虽然你说你装的都是jdk1.5。但是你还是认真 java -version 一下,因为很多Linux都喜欢自带上自己的JRE。
访问权限。确认以下你有足够的权限在Linux下做相关的操作。
换行符号。 windows是\r\n Linux下是 \n (不过你这个应该不用考虑这个问题)
CLASSPATH,换了环境,CLASSPATH得确定也正确
不过还要谢谢两位,散分了!