仅当尚未运行时才启动 Java 程序
我需要在我的 Java 应用程序中启动 1-3 个具有用户定义的路径的外部程序。我有几个要求:
如果程序已经在运行,我不希望程序执行
我不希望任何程序从我的Java应用程序中窃取焦点
我不在乎他们中的任何一个是否无法启动。他们只需要默默地失败。
以下是我到目前为止想出的:
ProcessBuilder pb = new ProcessBuilder(userDefinedPath1);
try {
pb.start();
}
catch (Exception e) {
// Something went wrong, just ignore
}
然后我用另外两条路径重复了3次。这开始就像我预期的那样,并满足了我的第三个要求,但前两个要求失败了。
最好的方法是什么?
编辑:
我无法控制这些其他应用程序。他们是第三方。此外,用户可能随时手动启动或停止它们。
我知道可执行文件的确切名称(例如“blah.exe”),它们将始终相同,但可执行文件的路径不一定是相同的。
批处理文件包装器在这里是不可行的。
其他应用程序不是Java应用程序,只是普通的旧Windows可执行文件。