如何啓動第二個獨立的Java過程平臺?理想情況下,它應該與當前運行的Java版本相同。有沒有任何有用的系統屬性?如何啓動第二個Java進程?
回答
這是不可能的,一般來說。
@ khachik回答中提供的配方不一定適用於Java的非Sun實現。
Java可執行文件不一定叫
java
,不一定住在bin
子目錄。即使使用Sun Java,在Windows上也有兩個可執行文件;java
和javaw
。對於不同的Java實現,啓動JVM的命令的命令選項是不同的。因此
ProcessBuilder
步驟可能涉及不可移植的參數。
雖然大多數JVM都採用主Sun java
命令選項,有許多不同之處。例如:
- IBM J9使用
j9
和j9w
爲可執行文件名稱。 - BEA/Oracle JRockit有不同的
-X
和-XX
選項。 - Jikes RVM使用
rvm
作爲可執行文件的名稱,並且僅支持Sun的java
選項的子集。 - IKVM使用
ikvm
作爲可執行文件的名稱。
(注:這些都只是在各自的在線文檔的粗略瀏覽脫穎而出的例子。)
您可以使用java.home
系統屬性來查找當前JVM:
String jvm = new java.io.File(new java.io.File(System.getProperty("java.home"),
"bin"),
"java").getAbsolutePath();
,然後使用ProcessBuilder
(或Runtime.exec
)運行它。
請注意,對於JDK java.home
指向包含在JDK中的JRE目錄。
您是否嘗試過使用Apache共享庫?如果你還沒有嘗試launcher project。這段時間對我來說非常有用。
下面是從他們的網站項目介紹:
啓動程序組件的設計是一個跨平臺的Java應用程序啓動。
原始Java類來自Tomcat 4.0項目。
Commons-launcher無需啓動批處理腳本或shell腳本來啓動Java類。在某些情況下,可能需要刪除批處理或外殼腳本:
- 您希望避免必須確定某些應用程序路徑的位置。您的應用程序的主目錄等。在Windows批處理腳本中動態確定此操作對於某些版本的Windows或在Unix平臺上使用softlink時非常棘手。
- 您希望避免必須處理本機文件和路徑分隔符或本機路徑引用問題。
- 您需要強制執行某些系統屬性,例如java.endorsed.dirs與JDK 1.4一起運行時。
- 您希望允許用戶傳遞自定義JVM參數或系統屬性,而無需在腳本中解析和重新排序參數。這在批處理腳本和shell腳本中可能會非常棘手和/或混亂。 您希望從配置文件引導系統屬性,而不是將它們硬編碼到批處理腳本和shell腳本中。
- 您想提供本地化的錯誤消息,這在批處理腳本和shell腳本中非常棘手。
如果我理解它,那麼它不會啓動Java進程,除此之外我知道可執行文件的任何外部進程。但這是問題。我不知道當前的可執行文件。 – Horcrux7 2010-12-12 20:54:53
- 1. 如何在調試器啓動時附加第二個進程?
- 2. 自動啓動第二個進程並附加在調試
- 3. 第二次啓動線程
- 4. 啓動第二個安裝程序WIX
- 5. 啓動第二個JavaFX應用程序
- 6. 啓動第二個實例時Adobe Reader進程失敗
- 7. 如何在iPad應用程序中啓動第二個MainWindow.xib?
- 8. Java - 如何啓動和忘記進程
- 9. NullPointerException啓動包第二個活動
- 10. 如何在java中的某個時間啓動一個進程?
- 11. Golang:如何在二進制更新時自動重啓進程?
- 12. Java應用程序啓動 - 如何創建第一個對象
- 13. 從C++進程啓動Java進程
- 14. 如何在android中啓動第二個活動?得到錯誤
- 15. 從java啓動R進程
- 16. 從Java啓動Cygwin進程
- 17. Powershell啓動進程Java PassThru
- 18. Java啓動獨立進程
- 19. 如何殺死java中的進程啓動的子進程?
- 20. 在x秒後啓動第二個setInterval
- 21. dev.new()啓動到第二個顯示器
- 22. 啓動ViewPagerController與第二個UIViewController
- 23. 第二個進程似乎使第一進程崩潰(.NET,C#)
- 24. 如何同時啓動兩個進程?
- 25. 從另一個java進程啓動java進程時進程掛起
- 26. 如何啓動一個java程序?
- 27. 在Visual Studio 2010中啓動第一個項目後啓動第二個項目
- 28. 如何在Windows中啓動另一個進程時啓動進程?
- 29. 如何在C#窗體中啓動第二個計時器?
- 30. 如何啓動第二個媒體播放器..?
任何鏈接以支持您的第一個索賠? – 2010-12-12 14:06:16