我有一个 Java 应用程序,我想生成一个新进程(启动一个 .bat 文件),它基本上会做与双击它相同的事情。
为了产生这个过程,Runtime.getRuntime().exec()我已经尝试了这两种方法。ProcessBuilder这两种方法都有效(它们可以启动 .bat 文件),但我的问题是它们实际上并没有做与双击它完全相同的事情。
更具体地说,这个 .bat 文件启动了一个配置为使用 Windows SxS(并排)运行的 JVM (java.exe MyMainClass)。因此,我创建了适当的java.exe.config和 java.exe.manifest文件。当我点击它时,java 应用程序启动并且适当的 .dll 被成功加载(因为我需要 SxS)。
ProcessBuilder我的问题是,当我使用or启动完全相同的 .bat 文件(具有完全相同的参数和进程环境)时Runtime.getRuntime().exec(),它似乎没有考虑到我的 SxS 配置,因此我需要的 .dll 是根本没有加载,导致错误。
有没有人知道如何启动这个 .bat 文件,就像我双击它时 Windows laucnhes 一样?此外,是否有人对 Java SxS 部署有任何经验?我无法真正理解为什么 ProcessBuilder 会忽略我的 SxS 配置。
提前致谢。