簡體   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