Re: [問題] 如何使用Runtime呼叫Linux底下的程式並 …
我現在遇到的問題是,我想用Runtime.exec()來執行"source"這個指令
但是不管我怎麼改就是會出現error或是有exception的問題出現
不過"source"不是本來就是linux的內建指令嗎???
以下是我的程式碼:
/*************************************************************/
static void SourceSOCE() throws IOException
{
// invoke a shell and give command to it
Runtime runtime = Runtime.getRuntime()
String[] args = new String[]{"/bin/sh", "-c", "source
/backup/cad/cadence/CIC/soc.csh"};
Process proc = runtime.exec(args);
try
{
if (proc.waitFor() != 0)
{
System.err.println("exit value = " + proc.exitValue());
System.out.println("Source failed!!");
}
}
catch (InterruptedException e)
{
System.err.println(e);
}
}
/************************************************************/
※ 引述《jlovet (你這可惡的騙子)》之銘言:
: ※ 引述《dog0629 (狗狗)》之銘言:
: : 我現在的程式:
: : Runtime rt = Runtime.getRuntime();
: : Process proc = rt.exec(new String[] {"dv &", "null" } );
: : InputStream stdin = proc.getInputStream();
: : InputStreamReader isr = new InputStreamReader(stdin);
: : BufferedReader br = new BufferedReader(isr);
: : 可是這樣在LINUX下執行會產生
: : Wrong Commend
: : java.io.IOException: java.io.IOException: dv &: not found
: : 的錯誤訊息
: ㄜ...不知道你有沒有寫過C...
: 要執行外部指令有兩種...
: 一種是 system, 他會呼叫預定的shell, /bin/sh 來執行你給的命令
: 這種你才可以有 dv & 這樣的指令
: Java的Runtime.exec 要給完整的程式PATH
: 例如 /bin/ls
: 你參考一下APIDOC
: public Process exec(String command) 像這一種的
: command就只能單純是執行檔的位置,不能連參數都放進去
: 要放參數的確就像你寫的一樣...
: 可是array的第一個string還是執行檔名稱
: 當然..你的電腦上找不到 "dv &"這個檔案....
: 那...Java可以呼叫shell嗎
: 應該可以吧...我沒有試過
: rt.exec(new String[]{"/bin/sh","-c","dv","&"})
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.129.25.211
推
10/16 11:30, , 1F
10/16 11:30, 1F
推
10/17 13:12, , 2F
10/17 13:12, 2F
討論串 (同標題文章)
完整討論串 (本文為第 4 之 4 篇):