我有一個Java程序,它被轉換成可執行的jar。在沒有Java的Linux機器上可以運行jar嗎?即一臺沒有Java的機器。在Linux環境下運行沒有JVM的Java
回答
試試這個編譯器。 https://en.wikipedia.org/wiki/GNU_Compiler_for_Java
的GNU Java編譯器(GCJ)是Java編程語言的免費編譯器和GNU編譯器集
在這之前,請參閱[是GNU的Java編譯器GCJ死了嗎?](http://stackoverflow.com/questions/4035538/is-gnus-java-compiler-gcj-dead/4040404#4040404)另外[GCJ新聞頁面](http://gcc.gnu.org/java/),它自2009年以來一直未更新。 – EJP
一部分。如果你的應用程序沒有使用最新的Java語言標準,你可以使用gcj創建一個二進制文件。 但請認爲gcj是一個相當老的產品,並沒有多年更新。較新的Java版本的支持缺乏,在project page狀態:
...已經被合併到GNU Classpath並支持大多數1.4 庫加上一些附加1.5。
由gcj創建的代碼可能比在Hotspot Jvm下運行的代碼慢得多,並在靜態編譯時創建相當大的二進制文件。
另一種選擇是將Jre和您的jar包捆綁到一個可執行文件中。這個任務有幾個程序,launch4j(http://launch4j.sourceforge.net)就是其中之一。
您也可以自己提供Java,因爲它不需要安裝,可以放在與jar相同的目錄中。如果您使用Oracles JRE,請檢查Eula是否允許以這種方式捆綁它。如果沒有,你可以使用OpenJdk。
在Java 8中,您可以爲Windows/Linux/Mac創建所謂的「獨立包」,這實際上是與JRE捆綁在一起的Java應用程序。
未來閱讀:
https://docs.oracle.com/javase/8/docs/technotes/guides/deploy/self-contained-packaging.html
https://docs.oracle.com/javase/8/docs/technotes/guides/deploy/packager.html
https://docs.oracle.com/javase/8/docs/technotes/tools/unix/javapackager.html
而且它可能是值得一提的提前(AOT)的Java編譯器,如怡東噴氣:http://www.excelsiorjet.com/
我認爲自包含的軟件包是最好的選擇:標準,沒有成本,並且完成這項工作。另外,您不需要源代碼,它可以在JAR上工作 – Marged
'javapackager'在Java 7中可用,但它被稱爲'javafxpackager'。 –
下面是一個'javapackager'的例子:http://stackoverflow.com/a/34253042/597657 –
- 1. 在沒有圖形環境的Linux下運行Matlab?
- 2. 在Linux環境下運行.bat
- 3. jvm的崩潰:致命錯誤已被Java運行時環境
- 4. 在Linux環境下運行PHP的Windows網絡驅動器
- 5. Java運行時環境JVM 7.0_45-b18檢測到致命錯誤
- 6. 在linux下運行java jar
- 7. 在java 7環境下運行java 1.5編譯的程序
- 8. 如何在Linux環境下運行.net應用程序?
- 9. 在Linux環境下遠程運行命令
- 10. 如何在LINUX環境下運行對象TCL?
- 11. Elastic Beanstalk認爲環境沒有運行
- 12. Javascript'onclick'在windows環境下失敗,但在linux環境下工作
- 13. Linux環境下的ZeroMQ
- 14. Linux環境下的pyqt4
- 15. 在HP-UX環境JVM中,C堆中運行的是Java堆嗎?
- 16. 在Matlab環境下運行Java代碼的步驟?
- 17. 有沒有辦法知道我的webrole在什麼環境下運行?
- 18. 在沒有JVM的機器上運行Java應用程序
- 19. 環境變量沒有指向有效的JVM安裝
- 20. 環境變量java_home沒有指向有效的jvm安裝
- 21. java運行時環境的錯誤
- 22. java運行時環境中的Animation.jar
- 23. linux dnx(.net執行環境):沒有正文內容的HTTP 200s
- 24. (Linux)如何在沒有顯示環境的情況下運行gtk程序? Gtk-WARNING **:無法打開顯示:
- 25. 你有在Windows下運行的Rails開發環境嗎?
- 26. 如何在文本模式Linux環境下運行JAVAWS命令行?
- 27. 在Xcode中運行沒有環境變量的shell腳本?
- 28. 如何在沒有本地環境的情況下進行Java Web開發
- 29. 僅在Linux環境中使用Java OutOfMemory
- 30. 在Windows和Linux環境下共享Gemfile.lock
您可能想考慮將JVM與JAR捆綁在一起。它大約有80MB,但有很多工具可以讓它變得非常簡單。 –
why.do.you.put.periods無處不在? –