我想要製作一個Java程序,將爲我在我的MacBook上建立一個SSH連接。它提示我輸入用戶名,然後輸入IP地址,然後輸入「ssh username @ ip」。無法運行程序「...」錯誤= 2,沒有這樣的文件或目錄(java)
下面是我的代碼:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Scanner;
public class SSH {
public static void main(String[] args) throws Exception {
boolean rep = true;
String username = (null);
String IPAdress = (null);
while (rep) {
Scanner scanner = new Scanner(System.in);
System.out.print("Username: ");
username = scanner.next();
System.out.print("\nIP Adress: ");
IPAdress = scanner.next();
System.out.println("\n\nIs this correct?\nUsername: " + username + "\nIP Adress: " + IPAdress + "\nY/N");
char responce = scanner.next().charAt(0);
if (responce == 'Y' || responce == 'y') {
rep = false;
scanner.close();
} else if (responce == 'N' || responce == 'n') {
} else {
Error displayErrorMessage = new Error();
displayErrorMessage.displayError();
}
}
String SSHStartup = username + "@" + IPAdress;
System.out.println("Running command: ssh " + SSHStartup);
String[] command = { "/bin/bash, -c , ssh " + SSHStartup };
Process p = Runtime.getRuntime().exec(command);
p.waitFor();
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = "";
StringBuffer output = new StringBuffer();
while ((line = reader.readLine()) != null) {
output.append(line + "\n");
}
}
}
我知道,它的雜亂,現在好縮進,但不是執行命令,它給了我這樣的:
Exception in thread "main" java.io.IOException: Cannot run program "/bin/bash, -c , ssh [email protected](ip here)": error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at java.lang.Runtime.exec(Runtime.java:620)
at java.lang.Runtime.exec(Runtime.java:485)
at SSH.main(SSH.java:32)
Caused by: java.io.IOException: error=2, No such file or directory
at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.<init>(UNIXProcess.java:248)
at java.lang.ProcessImpl.start(ProcessImpl.java:134)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
... 3 more
爲目的這篇文章中,我已經刪除了IP地址,但是當我編譯並運行它時,我嘗試了實際的一個,它給了我同樣的錯誤。
幫助?
什麼'ls -l命令/斌/ bash'回報? – Tunaki
@Tunaki,它返回-r-xr-xr-x 1個根輪628496 Dec 2 22:36/bin/bash – Spud
https://bugs.eclipse.org/bugs/show_bug.cgi?id=509628,有Eclipse長期以來的錯誤。我可以通過在程序本身提及adb的完整路徑來獲得此解決方案。 String [] temp = {「/ Users/vikram-anna/Library/Android/sdk/platform-tools/adb」,「start-server」}; \t \t p = Runtime.getRuntime()。exec(temp); – vikramvi