我正在嘗試使用Apache Commons Net創建TFTPClient以將文件放在服務器(AIX OS)上,並且TFTP服務正在該服務器上運行,沒有任何異常在運行下面的代碼時引發,似乎一切正常,但文件沒有放在服務器上。無法使用TFTPClient發送文件(Apache Commons Net庫)
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.SocketException;
import java.net.UnknownHostException;
import org.apache.commons.net.tftp.TFTP;
import org.apache.commons.net.tftp.TFTPClient;
public class Test {
/**
* @param args
* @throws IOException
* @throws SocketException
*/
public static void main(String[] args) throws SocketException, IOException {
int timeout=5000;
String host="192.168.1.20";
int port=22;
TFTPClient tftpClient=new TFTPClient();
tftpClient.setDefaultTimeout(60000);
tftpClient.open(69);
tftpClient.setSoTimeout(timeout);
System.out.println("DONE");
FileInputStream input = null;
File file;
file = new File("D:\\project.ear");
input = new FileInputStream(file);
try{
tftpClient.sendFile("/home/dev/project.ear", TFTP.BINARY_MODE, input, host);
}
catch (UnknownHostException e)
{
System.err.println("Error: could not resolve hostname.");
System.err.println(e.getMessage());
System.exit(1);
}
System.out.println("DONE2");
tftpClient.close();
}
}
上述代碼的輸出是:
DONE
DONE2
這意味着一切都OK,但我沒有找到在代碼指定的目錄下的文件。
請指點。
你確定這個文件真的存在嗎?嘗試詢問文件的長度:System.out.println(file.length()); – WeMakeSoftware
該文件存在於本地機器上,如果該文件不存在,我會得到FilenotfoundException類型的異常。 – Javaeg