簡體   English   中英

如何從Java在Linux終端中交互執行多個命令?

[英]How to execute multiple commands interactively in linux terminal from Java?

我想在linux terminal運行多個命令,該命令將如下所示:

1.我會跑假設torch和我寫了th命令,並將其打開火炬PROMT。
2.現在,如果我從Java執行下一條命令,那么它將在linux終端的割炬程序中運行。

您可以舉另一個例子:

1.首先,我將從Java在linux終端中運行python
2.然后從Java運行python解釋器中的1+1或任何東西。
所以在這里,我的第二條命令取決於第一條命令。 我想按順序在終端中運行命令。

編輯 :另一種方法會做。假設我有一個在linux終端中運行的python解釋器,現在我想從java中執行一個命令,該命令將在特定打開的linux終端的python解釋器中運行。 我可以這樣做嗎?

我試圖使用以下命令運行命令:

        String line;
            try
            {

                String execstr= "th"; //It opens the torch promt in linux terminal.

                Process p = Runtime.getRuntime().exec(execstr);
                BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));

                /*if((line= input.readLine())==null)
                    System.out.println("blank");*/

                while ((line = input.readLine()) != null) 
                {
                    System.out.println(line);
                }
                input.close();
            }
            catch(Exception e)
            {

                e.printStackTrace();
            }

        }
    }

但是現在在執行此命令之后,如何在promt中從java運行命令,這意味着我希望以交互方式進行操作?

那么,如何保存上一個命令的狀態並將其用於下一個命令?

使用p.getOutputStream()獲取一個流,您可以在其中為運行的程序編寫所需的輸入。 (我知道,命名有點混亂)。

只是相關的部分:

    Process p = Runtime.getRuntime().exec(execstr);
    BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
    OutputStream ops = p.getOutputStream();
    ops.write("echo hello world".getBytes());
    ops.close();            

    while ((line = input.readLine()) != null) 
    {
       System.out.println(line);
    }
    input.close();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM