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