繁体   English   中英

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

[英]How could I pass in commands into a terminal that is already running in java (linux)

我一直在研究如何在Java中运行终端命令。 我这样做是为了制作一个程序,我可以使用它将ssh转换为另一台pc(就像一个项目一样)。 我如何继续在该终端中继续输入命令? 如果运行此命令,我会收到一条输入密码的消息,如果这样做,它将打印出终端在以下位置吐出的消息: while((line = in.readLine()) != null){ System.out.println(line + "\\n");
}
while((line = in.readLine()) != null){ System.out.println(line + "\\n");
}

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

    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();
    }

您不能将参数传递给实时JVM,但是可以通过某种方式修改使用JMX完成的一些参数,从而可以连接到实时JVM并发送参数。 这将立即生效。

希望能有所帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM