相关疑难解决方法(0)

仅在尚未运行的情况下启动Java程序

我需要在我的Java应用程序中启动1-3个外部程序,这些程序具有用户定义的路径.我的要求很少:

  1. 如果程序已经运行,我不希望程序执行

  2. 我不希望任何程序从我的Java应用程序中窃取焦点

  3. 我不在乎他们中的任何一个是否未能启动.他们只需要默默地失败.

这是我到目前为止提出的:

ProcessBuilder pb = new ProcessBuilder(userDefinedPath1);
try {
    pb.start();
}
catch (Exception e) {
    // Something went wrong, just ignore
}
Run Code Online (Sandbox Code Playgroud)

然后我用另外两条路径再重复3次.这开始就像我期望的那样,并且满足我的第三个要求就好了,但是前两个失败了.

做这个的最好方式是什么?

编辑:

  1. 我对这些其他应用程序没有任何控制权.他们是第三方.此外,用户可以随时手动启动或停止它们.

  2. 我知道可执行文件的确切名称(例如"blah.exe")并且它们将始终相同,但可执行文件的路径不一定如此.

  3. 批处理文件包装器在这里是不可行的.

  4. 其他应用程序不是 Java应用程序,只是普通的旧Windows可执行文件.

java mutual-exclusion

15
推荐指数
3
解决办法
2万
查看次数

如何通过Java检测特定进程是否在Windows下运行?

好吧,标题几乎总结了这个问题.我发现的唯一的事情就是这个, 但我不确定这是不是这样.

java

9
推荐指数
1
解决办法
3万
查看次数

标签 统计

java ×2

mutual-exclusion ×1