我寫了一個連接到FTP服務器的java程序,並顯示服務器上當前工作目錄的內容列表。代碼如下:連接到FTP(java)時GUI崩潰
public static void connect(){
ftp = new FTPClient();
FTPClientConfig config = new FTPClientConfig();
ftp.configure(config);
boolean error = false;
try {
ftp.connect(ftpConnect);
ftp.enterLocalPassiveMode();
ftp.login(ftpUsername, ftpPassword);
System.out.println("Connected to " + ftpConnect);
System.out.println("Server Reply Code: "+ftp.getReplyString());
getFileData();
ftp.disconnect();
} catch(IOException e) {
error = true;
e.printStackTrace();
} finally {
if(ftp.isConnected()) {
try {
ftp.disconnect();
} catch(IOException ioe) {
// do nothing
}
}
System.exit(error ? 1 : 0);
}
}
public static void getFileData(){
try {
fileFTP = ftp.listNames();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void downloadFTPFile(final String source, String newFileName) {
File checker = new File(source);
if(checker.exists()){
System.out.println("File \" "+source+"\" already exists. Canceling donwload...");
System.exit(1);
} else {
try (FileOutputStream fos = new FileOutputStream(newFileName)) {
System.out.println("Downloading "+source+". This might take a while...");
System.out.println("Go make yourself a cup of coffee. Or two...");
ftp.retrieveFile(source, fos);
System.out.println("Done!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) throws IOException{
connect();
}
}
我得到了打印在我的揮杆GUI所有SYSOUT行動,以一個TextArea重定向類。但是,當我在GUI中啓動FTP連接時,GUI本身消失,就像它崩潰一樣,但在我的控制檯上,所有輸出都正確顯示,但不在重定向上。通過GUI,我還可以調用其他函數,如解壓縮程序,並且對於其他所有函數,GUI的工作狀態都很好,並在我的textArea中顯示所有SysOut的東西。這是FTPClient的東西之間的某種不兼容?
歡呼
通過命令行運行GUI,看看它是否會引發某種異常的在那裏 – nafas
我只是 - 我得到「包org.apache.commons.net.ftp不存在 」不過這是不準確的,因爲我導入了org.apache.commons.net jar i nto我的項目並將其綁定到我的構建路徑上。它也可以在控制檯輸出中使用!只是不在系統重定向... –
你可以添加如何重定向你的系統? – Garry