Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将命令传递到已经在java(linux)中运行的终端_Java_Linux_Terminal_Command - Fatal编程技术网

如何将命令传递到已经在java(linux)中运行的终端

如何将命令传递到已经在java(linux)中运行的终端,java,linux,terminal,command,Java,Linux,Terminal,Command,我一直在研究如何在java中运行终端命令。我这样做是为了做一个程序,我可以用ssh连接到另一台pc上,就像一个项目一样。我怎样才能继续在这个终端中输入命令?如果我运行此命令,我会收到一条消息,输入我的密码,如果我这样做,它会打印出终端在以下位置发出的消息: whileline=in.readLine!=空的{ System.out.printlnline+\n; } 行,但几秒钟后,我的程序将停止工作。 我目前有一个GUI,它只是一个按钮,如果我按下按钮,它将运行此代码。有人能帮我解决it停止的

我一直在研究如何在java中运行终端命令。我这样做是为了做一个程序,我可以用ssh连接到另一台pc上,就像一个项目一样。我怎样才能继续在这个终端中输入命令?如果我运行此命令,我会收到一条消息,输入我的密码,如果我这样做,它会打印出终端在以下位置发出的消息: whileline=in.readLine!=空的{ System.out.printlnline+\n; }

行,但几秒钟后,我的程序将停止工作。 我目前有一个GUI,它只是一个按钮,如果我按下按钮,它将运行此代码。有人能帮我解决it停止的问题,并告诉我如何继续将命令输入终端的信息吗?谢谢

    Process p = null;
    String[] command = {"/bin/sh",  "-c", "ssh 192.168.2.100"};
    ProcessBuilder pb = new ProcessBuilder(command);

    String line = null;

    try {
        term = pb.start();
    } catch (IOException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

    InputStream is = p.getInputStream();

    BufferedReader in = new BufferedReader(new InputStreamReader(is));

    try {
        while((line = in.readLine()) != null){
            System.out.println(line + "\n");    
        }
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    try {
        in.close();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

您不能将参数传递给livejvm,但有一种方法可以修改使用完成的一些参数,通过这种方法,您可以连接到livejvm并发送参数。这将立即生效


希望这有帮助

如果我记得,当出现错误时,它将阻止您的程序,直到您读入它。这可能就是发生的情况。您应该使用Java SSH库,例如或。这段代码非常容易出错,因为您没有正确地关闭流,也没有从错误流中读取数据。你大概都是在EDT上做的。我会看看的,谢谢