在日食中运行jar

时间:2009-11-25 11:31:21

标签: java eclipse-plugin executable-jar

我的问题是我想在插件中运行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项目中的结果dir,结果来自这里。

在罐子运行后,我想将“temp”文件夹重命名为其他文件夹,但是在罐子完成运行之前,eclipse会重命名“temp”文件夹,因此罐子不能正常工作。

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

2 个答案:

答案 0 :(得分:1)

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

注意:同时阅读标准输出和标准错误is advised

Notebis:作为此SO answer illustrates,在没有开头的情况下运行'cmd'可能会使.waitFor()能够执行您想要的操作。

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

答案 1 :(得分:1)

尝试不使用start运行java:

String run_tool ="cmd.exe /C java ...