我想從我的java程序啓動一個單獨的進程,以使用當前Java程序正在執行的相同JRE運行另一個Java程序。通常,我可以獲得java可執行文件使用System.getProperty
,但java程序運行在捆綁的jre(Mac應用程序包)中,該程序實際上並不包含java可執行文件。因此,我想知道是否有任何API可以在單獨的進程中直接運行Java程序?開始使用相同的JRE運行Java程序的單獨過程JRE
0
A
回答
0
的API公共此間舉行:http://docs.oracle.com/javase/8/docs/api/
,你是從System
實用工具類找缺點的信息:
所有可用的屬性將在這裏列出:http://docs.oracle.com/javase/8/docs/api/java/lang/System.html#getProperties--
目前的JVM位置通過「java.home」可用。
所以你想找的是:
String javaPath = new File(System.getProperty("java.home"),"bin/java").absolutePath();
0
這可能會給一個更好的畫面。
使用下面的獲取Java可執行文件。
System.getProperty("java.home") + "/bin/java"
重建類路徑,
((URLClassLoader() Thread.currentThread().getContextClassLoader()).getURL()
從這裏,你可以使用
Process.exec(javaExecutable, "-classpath", urls.join(":"), CLASS_WIH_MAIN)
+0
正如我對蒂莫西說的,我在我的問題中提到,綁定的jre不包含可執行的java。 'System.getProperty(「java.home」)'返回的文件路徑甚至不包含'bin'文件夾。 –
相關問題
- 1. 使用自定義JRE運行java
- 2. 在運行Java應用程序之前檢測JRE
- 3. OSX - 編譯Java JNI應用程序以僅安裝JRE運行
- 4. JDK附帶的JRE與獨立的JRE包含的JRE
- 5. 在同一臺PC上運行兩個針對單獨JRE的Java Web Apps
- 6. 如果JRE版本低於預期的JRE運行時,優雅地退出Java應用程序
- 7. 強制Java應用程序使用特定的jre
- 8. 「Hello World!」由JDK 7u3編譯的程序使用較舊的JRE(例如JRE 6)運行?
- 9. 如何在開始運行JMeter時設置JRE的-Xmx
- 10. 在不同的JRE上運行Java類文件的後果?
- 11. 適用於Java應用程序的JRE包裝
- 12. 運行java web服務(基於rest)的最佳選擇(JRE/JDK vs Server JRE)
- 13. 開始一個單獨的過程
- 14. 不與JRE運行8
- 15. 設置多個的JRE在同一應用程序
- 16. 如何在沒有jre的情況下運行netbeans應用程序或者如果以前沒有安裝如何運行jre安裝程序
- 17. 僅僅是一個「javaw.exe」足以在未安裝JRE的Windows機器上運行簡單的Java應用程序?
- 18. Eclipse和jre鏈接。 Java prog在eclipse中運行時沒有jre鏈接
- 19. 使用javascript檢測IE6上的java/jre
- 20. 無法執行未捆綁JRE的JavaFX應用程序
- 21. Netbeans - 構建目標JDK 6,但使用Java 7運行JRE
- 22. JDK x64和JRE x86應用程序打開
- 23. Java EE是否在Java SE的JRE上運行?
- 24. 安裝java jre 5.0
- 25. Eclipse安裝程序找不到jre
- 26. Java桌面應用程序兼容32位jre
- 27. 如何在部署Java Swing應用程序時安裝JRE?
- 28. Java JRE的安裝庫?
- 29. 如何讓兩個小程序工作,使用不同的jre的
- 30. 構建Android應用在JRE中運行
正如我提到的,捆綁的JRE實際上不包含Java可執行文件啓動新進程 –
@SimonZhu *「正如我提到的,捆綁的jre實際上並不包含java可執行文件」* - 這並不重要。該程序是在您的系統上安裝JRE的情況下啓動的,並且從java內部,此屬性**總是**指向*當前正在運行的Java安裝,系統範圍內的無記錄或特定於$ JAVA_HOME的特定於shell的指向。 –
不,程序運行在捆綁的jre中,它不包含java可執行文件。換句話說,'System.getProperty(「java.home」)+「bin/java」'不存在。 –