繁体   English   中英

Java中的生成过程,类似于双击

[英]Spawn process in Java, similar as double-click

我有一个Java应用程序,我想产生一个新进程(启动.bat文件),该进程本质上会与双击它执行相同的操作。

我尝试了Runtime.getRuntime().exec()ProcessBuilder来生成该进程。 they do not actually do the exact same thing as by double clicking on it. 这两种方法都可以工作(它们都可以启动.bat文件), 它们实际上并没有执行与双击它完全相同的操作。

更具体地说,此.bat文件将启动JVM(java.exe MyMainClass),该JVM配置为使用Windows SxS(并排)运行。 因此,我创建了适当的java.exe.configjava.exe.manifest文件。 当我在doulbe上单击时,将启动Java应用程序,并成功加载相应的.dll(原因是我需要SxS)。

我的问题是,当我使用ProcessBuilderRuntime.getRuntime().exec()启动完全相同的.bat文件(具有完全相同的参数和进程环境)时,似乎没有考虑到我的SxS配置,因此我所需的.dll根本没有加载,从而导致错误。

有没有人知道我双击该启动文件的方式,就像Windows启动该启动文件一样? 此外,是否有人对Java SxS部署有任何经验? 我真的不明白为什么ProcessBuilder会忽略我的SxS配置。

提前致谢。

您可以尝试启动一个cmd窗口,该窗口会加载您的应用程序bat文件:

Runtime.getRuntime().exec("cmd /c start cmd.exe /K \"C:\\path\\to\\the\\app.bat arg1 arg2\"");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM