无法运行程序“…”错误= 2,没有这样的文件或目录(java)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了无法运行程序“…”错误= 2,没有这样的文件或目录(java),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2465字,纯文字阅读大概需要4分钟。
内容图文
我正在尝试创建一个java程序,它将在我的macbook上为我设置SSH连接.它提示我输入用户名,然后是IP地址,然后它应该是“ssh username @ ip”.
以下是我的代码:
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 root@(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地址,但是当我编译并运行它时,我尝试了实际的一个,它给了我同样的错误.
救命?
解决方法:
String[] command = { "/bin/bash, -c , ssh " + SSHStartup };
Process p = Runtime.getRuntime().exec(command);
您的命令数组包含单个值,即字符串“/ bin / bash,-c,ssh …”. Java正在尝试并且无法执行具有该名称的文件.
您可能打算构造一个包含命令及其参数的命令作为字符串序列,而不是单个字符串:
String[] command = { "/bin/bash", "-c", "ssh " + SSHStartup };
内容总结
以上是互联网集市为您收集整理的无法运行程序“…”错误= 2,没有这样的文件或目录(java)全部内容,希望文章能够帮你解决无法运行程序“…”错误= 2,没有这样的文件或目录(java)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。