2009-11-25 93 views
2

我的问题是我想在eclipse中的一个插件中运行一些jar文件。这瓶进行分析的Eclipse项目:在eclipse中运行jar

String run_tool ="cmd.exe /C start java -Xmx400m -cp org-jcolumbus.jar;org-jcolumbus-schema.jar;lib/antlr.jar org.jcolumbus.tool.BuildModel -tasks "+src_dir+" -jsi "+SelProj.getLocation()+"/result/temp/"+SelProj.getName(); 
Runtime rt2 = Runtime.getRuntime(); 
Process sp2 = rt2.exec(run_tool); 

src_dir”是Eclipse项目

"SelProj.getLocation()+"/result/temp/"+SelProj.getName()"的源代码目录是在选定的Eclipse项目的结果目录,结果到这里来。

罐子运行后,我想将“temp”文件夹重命名为另一个,但eclipse在罐子完成运行前重命名“temp”文件夹,所以罐子不能正常工作。

我尝试使用sp2.waitFor()方法,但它不好。我认为在cmd.exe /C start新过程之后的“启动”参数,我无法控制。
如果有人有一些建议,请给我。谢谢。

回答

1

在继续执行其他程序之前,您可以使用StreamGobbler(请参阅此SO question或此simple one)查找命令的完成。

注意:读取标准输出和标准错误is advised

请注意:因为这个SO answer illustrates,没有启动运行'cmd'可能会使.waitFor()做你想做的。

Process p = Runtime.getRuntime().exec(cmd + " < c:\\someTextFile.txt", null, cmdDir); 
... 
int errCode = p.waitFor(); 
1

尝试运行的Java,而无需使用启动:

String run_tool ="cmd.exe /C java ... 
相关问题