[英]running linux command txl from java program
我知道我們可以在Java程序中運行linux終端命令,例如以下代碼顯示主目錄的“ ls”命令。
String[] cmd1 = {
"/bin/sh",
"-c",
"cd ../.. && ls"};
Process child1 = Runtime.getRuntime().exec(cmd1);
child1.waitFor();
final BufferedReader is = new BufferedReader(new InputStreamReader(child1.getInputStream()));
String line;
while ((line = is.readLine()) != null) {
System.out.println("output is: "+line);
}
但是我不知道“ / bin / sh”和“ -c”是什么意思? 我在網上搜索它,有人用“ bash”或其他方式。 而且,如果僅以“ cd ../ .. && ls”運行命令,我將得到相同的結果。
因此,如果終端中有一個命令“ txl -o output inputFile”,其中“ txl”是安裝的工具,那么如何用Java編寫? 我試過了
String[] cmd1 = {
"/bin/sh",
"-c",
"cd ../.. && txl -o output inputFile"};
但是無法得到結果。 我添加“ cd ../ ..”首先從工作空間轉到主目錄,因為txl安裝在主bin目錄中。
誰能給我一些建議?
編輯:
我犯了一個愚蠢的拼寫錯誤,這種格式的命令有效!
/bin/sh
是一個程序,它是外殼程序,選項-c
指定以下內容是要由外殼程序執行的命令(這是cmd1的第三行): cd ../.. && ls
)
編輯:
在這種情況下,必須執行shell,僅執行cd ../.. && ls
行不通的,因為Java不能理解cd
和ls
之間的&&
類的運算符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.