我有一个应该运行 bat 文件的 java 程序,然后以成功代码 0 退出。
代码基本上看起来像这样
Runtime.exec(....);
System.exit(0);
99.8% 的时间,这工作得很好。但非常偶尔地,bat 文件不会运行。
我的理论是,在某些系统上,Runtime.exec 无法在 System.exit 运行之前完成它的生成。这可能/可能吗?
我查看了 Runtime.exec 的源代码,但它会放入本机代码中来做有趣的事情。
编辑
根据到目前为止的答案,我应该声明 .bat 文件使用 javaw 执行另一个 java 进程。我可以确认第一个 java 进程结束不会杀死 bat 文件中的第二个运行。
当问题发生时,bat 文件是否有可能在 System.exit 发生之前没有产生第二个 java 进程?也许它毕竟不是 Runtime.exec 问题?
编辑2
我不能等待第二个进程结束,它可以无限期地运行,我的第一个进程必须退出。