簡體   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