Java 在eclipse中运行jar

Java 在eclipse中运行jar,java,eclipse-plugin,executable-jar,Java,Eclipse Plugin,Executable Jar,我的问题是我想在eclipse中的插件中运行一些jar文件。JAR对eclipse项目进行分析: 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

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

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项目中的结果目录,结果显示在此处

在jar运行之后,我想将“temp”文件夹重命名为另一个文件夹,但是eclipse在jar完成运行之前重命名了“temp”文件夹,因此jar不能正常工作

我尝试使用
sp2.waitFor()
方法,但效果不好。我想在新流程中
cmd.exe/C start
之后的“start”参数是我无法控制的。

如果有人有什么建议,请给我。谢谢

您可以使用
StreamGobbler
(参见此或此)在继续执行程序的其余部分之前查找命令的完成情况

注:读取标准输出和标准误差

注二:因此,在不启动的情况下运行“cmd”可能会启用
.waitFor()
执行您想要的操作

Process p = Runtime.getRuntime().exec(cmd + " < c:\\someTextFile.txt", null, cmdDir);
...
int errCode = p.waitFor();
processp=Runtime.getRuntime().exec(cmd+“
尝试在不使用start的情况下运行java:

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