作者EasyIsBeauty (把握当下)
站内java
标题[问题] Runtime.exec和waitFor的用法
时间Wed Dec 26 08:31:36 2007
各位前辈好,小弟最近写了一个简单的程式如下,
主要是希望程式能在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
1F:推 PsMonkey:请先确定 Runtime 的工作目录在哪里... 12/26 09:19
谢谢版大,我其实不太懂要怎麽设,我再详细点说明,
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)
2F:推 superlubu:给它全写成 absolute path, 就是 E:\\MI_TOOL\\.... 12/26 22:12
3F:→ superlubu:classpath 也好、.cfg 也好,全都写成 absolute path 12/26 22:12
4F:→ EasyIsBeauty:谢谢各位帮助,後来发现是我脑残了,路径打错了... 12/27 14:47