加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

无法运行程序“…”错误= 2,没有这样的文件或目录(java)

发布时间:2020-12-15 04:34:01 所属栏目:Java 来源:网络整理
导读:我正在尝试创建一个 java程序,它将在我的macbook上为我设置SSH连接.它提示我输入用户名,然后是IP地址,然后它应该是“ssh username @ ip”. 以下是我的代码: import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Scanner;publ
我正在尝试创建一个 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("nnIs 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,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,ssh " + SSHStartup };
Process p = Runtime.getRuntime().exec(command);

您的命令数组包含单个值,即字符串“/ bin / bash,ssh …”. Java正在尝试并且无法执行具有该名称的文件.

您可能打算构造一个包含命令及其参数的命令作为字符串序列,而不是单个字符串:

String[] command = { "/bin/bash","-c","ssh " + SSHStartup };

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读