[英]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.