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