项目结构是这样的
一个java程序(定义为A) 使用 runtime.exec("java -jar E:\B.jar") 运行一个 jar 程序(定义为B)
B里面也使用了 runtime.exec("E:\C.exe") 运行一个 exe 程序 (定义为C)
现在 手动启动A, A启动B, B启动C
问题来了 B启动C后,我期望的是正常情况还会往下执行B后面的代码
但是 B启动C后 却一直卡在那里(进程管理器中显示C已经在那里了)必须把A给关了 B才会继续执行后面的代码
如果B不由A启动的话 手动启动 也不会出现以上情况
这是为啥?有什么方法解决吗?
------解决方案--------------------
不要直接这样调用,可以通过start来调用
runtime.exec("cmd /c start java -jar E:\B.jar");
------解决方案--------------------
如果文件关联正确的话,就是你双击可以启动jar,可以这样:
- Java code
java.awt.Deskotp.getDesktop().open(new java.io.File("E:\\B.jar"));