最近、ssh の使い方を学び始めました。Ganymed SSH2 を使用して /bin にファイルを作成し、そこに単語を書き込みます。ファイルの名前が間違っています (Test74024010477125945txt) -jh はこれを修正するのに役立ちましたが、何も書き込まれていません! -未修理-
コード:
private void sshconnectActionPerformed(java.awt.event.ActionEvent evt) {
String host = phoneip.getText();
String username = "root";
String password = passwd.getText();
Connection conn = new Connection(host);
try {
conn.connect();
} catch (IOException ex) {
Logger.getLogger(Backup.class.getName()).log(Level.SEVERE, null, ex);
progress.setText("Connection Failed");
}
// Done connection stuffs and instance
try {
boolean isAuthenticated = conn.authenticateWithPassword(username, password);
} catch (IOException ex) {
Logger.getLogger(Backup.class.getName()).log(Level.SEVERE, null, ex);
progress.setText("Authentication failed");
}
try {
Session sess = conn.openSession();
sess.execCommand("cd /bin"); //useless i believe
} catch (IOException ex) {
Logger.getLogger(Backup.class.getName()).log(Level.SEVERE, null, ex);
progress.setText("Session failed");
}
try {
SFTPv3Client client = new SFTPv3Client(conn);
File tmpFile = new File("Test.txt");
FileWriter fw = new FileWriter(tmpFile);
fw.write("this is a test");
fw.flush();
fw.close();
//temporary file
SFTPv3FileHandle handle = client.createFile("/bin/" + tmpFile.getName());
FileInputStream fis = new FileInputStream(tmpFile);
byte[] buffer = new byte[1024];
int i=0;
long offset=0;
while ((i = fis.read(buffer)) != -1) { //start writing to file
client.write(handle,offset,buffer,0,i);
offset+= i;
}
//write file at /bin
client.closeFile(handle);
if (handle.isClosed()) progress.setText("Done!");;
client.close();
} catch (IOException ex) {
Logger.getLogger(Backup.class.getName()).log(Level.SEVERE, null, ex);
progress.setText("SFTP failed"); //failure
}
}
私が間違って書いた可能性はありますか?