[問題] Runtime.exec和waitFor的用法
各位前輩好,小弟最近寫了一個簡單的程式如下,
主要是希望程式能在cmd下執行下面這串指令
java -cp classes ailab.mi.SampleMI big5_mi.cfg
(本程式和外部程式檔案都在同一個資料夾)
我的程式碼在最下面,但是都沒辦法順利的讓外部程式順利的去跑,
這是印出的錯誤,可是我不確定問題是出在哪,
是下的指令寫錯還是時間不夠被中斷,可以請各位前輩幫忙看看嗎?謝謝!
錯誤資訊:
java.lang.NoClassDefFoundError: big5_mi/cfg
Exception in thread "main"
</ERROR>
Process exitValue: 1
程式碼:
class ExecConfig {
public void execCfg() throws IOException {
String cmd = "java -cp classes ailab.mi.SampleMI big5_mi.cfg";
try {
Runtime rt = Runtime.getRuntime();
Process ps = rt.exec(cmd);
InputStream stderr = ps.getErrorStream();
InputStreamReader isr = new InputStreamReader(stderr);
BufferedReader br = new BufferedReader(isr);
String line = null;
System.out.println("<ERROR>");
while ( (line = br.readLine()) != null)
System.out.println(line);
System.out.println("</ERROR>");
int exitVal = ps.waitFor();
System.out.println("Process exitValue: " + exitVal);
} catch (Throwable t){
t.printStackTrace();
}
}
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.126.11.236
推
12/26 09:19, , 1F
12/26 09:19, 1F
謝謝版大,我其實不太懂要怎麼設,我再詳細點說明,
java -cp classes ailab.mi.SampleMI big5_mi.cfg
原本我的外部程式用上面這串指令在 E:\MI_TOOL> 下執行可以順利完成,
現在我寫的另一個程式要去呼叫他,
一樣在 E:\MI_TOOL 這個資料夾下使用runtime呼叫這個指令,
可是就出了問題,
其實我要呼叫的package是在 E:\MI_TOOL\classes\classes 裡,
但是我的外部程式需要一個config檔big5_mi.cfg傳入,
這個檔案在E:\MI_TOOL中,我不知道該如何正確的寫cmd中的指令,
讓Runtime能順利進行,麻煩指導一下,謝謝!
※ 編輯: EasyIsBeauty 來自: 122.126.11.236 (12/26 19:09)
推
12/26 22:12, , 2F
12/26 22:12, 2F
→
12/26 22:12, , 3F
12/26 22:12, 3F
→
12/27 14:47, , 4F
12/27 14:47, 4F