現在通過CommandHelper.execute方法可以執行命令,該類實現
CommandHelper類使用了CommandResult對象輸出結果錯誤信息。該類實現
package javaapplication3;
/**
*
* @author chenshu
*/
public class CommandResult {
public static final int EXIT_VALUE_TIMEOUT=-1;
private String output;
void setOutput(String error) {
output=error;
}
String getOutput(){
return output;
}
int exitValue;
void setExitValue(int value) {
exitValue=value;
}
int getExitValue(){
return exitValue;
}
private String error;
/**
* @return the error
*/
public String getError() {
return error;
}
/**
* @param error the error to set
*/
public void setError(String error) {
this.error = error;
}
}
現在看看調用代碼的演示(main函數接受一個超時參數):
結果會創建一個testdir目錄。
我嘗試用這種方法創建通過ssh登錄到遠程機器,遇到兩個問題:
1)如果希望沒有人機對話方式,則需要使用命令sshpass -p password ssh user@targetIP 'command'
2) 在NetBeans上直接運行工程是不行的,因為權限不夠,需要在終端里運行java javaapplication3.Main
3) 很多命令不能運行,只有如pwd等命令可以運行,原因還不清楚,最好改用Ganymed SSH-2庫或者其他類似Java庫,我會在下一篇文章中介紹如何使用。
新聞熱點
疑難解答