在Linux环境中运行不带JVM的Java

时间:2016-01-13 05:22:15

标签: java

我有一个Java程序,它被转换为可执行jar。是否可以在没有Java的Linux机器上运行jar?即没有Java的机器。

3 个答案:

答案 0 :(得分:4)

在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编译器,如Excelsior Jet:http://www.excelsiorjet.com/

答案 1 :(得分:1)

试试这个编译器。 https://en.wikipedia.org/wiki/GNU_Compiler_for_Java

GNU Compiler for Java(GCJ)是Java编程语言的免费编译器,也是GNU编译器集合的一部分

答案 2 :(得分:0)

如果您的应用程序未使用最新的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。