![](/img/trans.png)
[英]How to open linux terminal from java and be able to execute commands in it?
[英]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.