我有一个java程序,它已导出到可运行的.jar文件中。这个jar在windows cmd中正确运行。我执行输入:
java -jar completerute.jar
它正确运行(执行持续约1分钟)并生成一个文件作为结果。一切都很完美。
但是当我尝试通过输入以下内容在其他项目中执行此操作时:
Process p = Runtime.getRuntime().exec("java -jar "+completerute.jar);
p.waitFor();
< ---这是因为我需要等待.jar完成才能读取它生成的文件
调用是正确的,但它只是说已完成(p.waitFor()
设置绿灯以继续正常执行)。但是,生成的.jar应用程序的结果文件尚未生成。我认为这是因为调用已经完成但jar应用程序尚未执行。我不知道为什么......
我希望你能给我一些关于问题原因的指导。谢谢你的关注。
编辑:源文件中的确切代码在这里
System.out.println("Calling jar process");
Process p = Runtime.getRuntime().exec("java "+System.getProperty("user.dir")+"\\esclavomaude.jar "+parametros);
p.waitFor();//waiting for finish
System.out.println("jar call finished");
Aclarations:
System.getProperty("user.dir")
--->提供正在执行的项目的实际路径。我的jar在那个目录上。