我正在尝试从 java 应用程序执行外部 jar。
检查进程是否已成功启动并运行的最优雅的方法是什么?
ExtApp.jar 是长期运行的进程,所以我不能使用Process.waiFor()
,因为它会阻塞我的应用程序。我想出了以下代码,背后的想法是如果进程尚未终止则exitValue()
抛出。IllegalThreadStateException
boolean success = false;
try {
Process process = Runtime.getRuntime().exec("java -jar ExtApp.jar");
try {
if (process.exitValue() == 0)
success = true;
} catch (IllegalThreadStateException e) {
success = true;
}
} catch (Exception e) {}
System.out.println(success);
但这是一种丑陋的解决方案。有更好的想法吗?