看板 java 關於我們 聯絡資訊
我現在遇到的問題是,我想用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
iFEELing:Source 的 path ? 10/16 11:30
cat1028:path = /backup/cad/cadence/CIC/soc.csh 10/17 13:12