我一直在尝试将我的程序内置到一个可执行的.jar中。我的程序的功能是创建一个文本文件,将数据放在该文本文件中,然后将文本文件上传到我的ftp服务器。
在日食中,程序完美运行,没有错误或问题。一旦我将它提取到一个excecutable .jar,程序就不显示我的JOptionPane.showMessageDialog()输出,文本文件被创建并上传到ftp服务器,但ftp服务器内的副本没有数据(我本地机器上的副本)确实有数据)。当我从命令提示符运行它来检查错误时,它运行得很好。
发生故障的班级:
import java.io.FileInputStream;
import java.io.IOException;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;
public class UploadKey {
public void Send(String fileName) {
FTPClient client = new FTPClient();
FileInputStream fis = null;
System.out.println("5");
try {
client.connect("host");
client.login("username", "password");
int replyCode = client.getReplyCode();
System.out.println("6");
if (!FTPReply.isPositiveCompletion(replyCode)) {
client.disconnect();
System.err.println("FTP server refused connection.");
System.exit(1);
}
fis = new FileInputStream("C:\\" + fileName);
System.out.println("7");
client.setFileType(FTP.BINARY_FILE_TYPE);
client.setFileTransferMode(FTP.BINARY_FILE_TYPE);
System.out.println("8");
client.storeFile(fileName, fis);
System.out.println("9");
fis.close();
System.out.println("10");
client.logout();
} catch (IOException e) {
e.printStackTrace();
}
}
}
感谢您的时间,
菲利普
编辑:解决了,.jar被读作javaw.exe而不是java档案。通过Jarfix应用程序(http://johann.loefflmann.net/en/software/jarfix/index.html)修复。谢谢大家的帮助。