如何啓動第二個獨立的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. 啓動第二個安裝程序WIX
- 4. 啓動第二個實例時Adobe Reader進程失敗
- 5. 如何在新的進程啓動第二個項目的新實例
- 6. 如何在iPad應用程序中啓動第二個MainWindow.xib?
- 7. Java - 如何啓動和忘記進程
- 8. Golang:如何在二進制更新時自動重啓進程?
- 9. 從C++進程啓動Java進程
- 10. 從Java啓動Cygwin進程
- 11. Powershell啓動進程Java PassThru
- 12. Java啓動獨立進程
- 13. 啓動ViewPagerController與第二個UIViewController
- 14. dev.new()啓動到第二個顯示器
- 15. 在x秒後啓動第二個setInterval
- 16. 第二個進程似乎使第一進程崩潰(.NET,C#)
- 17. 如何同時啓動兩個進程?
- 18. 在Visual Studio 2010中啓動第一個項目後啓動第二個項目
- 19. 如何啓動一個java程序?
- 20. 如何讓jQuery的scroll()函數啓動第二個函數?
- 21. 如何在C#窗體中啓動第二個計時器?
- 22. 如何啓動屏幕到第二個選項卡
- 23. 處理與第一個不同的第二個調試啓動?
- 24. 第二個函數在第一個完成之前啓動,Javascript
- 25. 意圖:啓動一個活動,無法啓動第二個活動
- 26. Boost進程間:如何啓動一個新進程?
- 27. 如何從Java小程序啓動服務器進程?
- 28. 如何判斷是否是第一次啓動進程
- 29. 第二次活動緩慢啓動
- 30. 如何從另一個java程序啓動java程序?
任何鏈接以支持您的第一個索賠? – 2010-12-12 14:06:16