在Linux环境中不使用JVM运行Java

在Linux环境中不使用JVM运行Java,java,Java,我有一个Java程序,它被转换为可执行jar。可以在没有Java的Linux机器上运行jar吗?例如,一台没有Java的机器。试试这个编译器。 GNU编译器for Java(GCJ)是Java编程语言的免费编译器,也是GNU编译器集合的一部分如果您的应用程序未使用最新的Java语言标准,则可以使用GCJ创建二进制文件。 但请考虑,GCJ是一个相当旧的产品,没有更新多年。缺少对较新Java版本的支持,状态如下: 。。。已与GNU类路径合并,并支持大多数1.4 库加上一些1.5的附加功能 gcj创

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

试试这个编译器。


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

如果您的应用程序未使用最新的Java语言标准,则可以使用GCJ创建二进制文件。 但请考虑,GCJ是一个相当旧的产品,没有更新多年。缺少对较新Java版本的支持,状态如下:

。。。已与GNU类路径合并,并支持大多数1.4 库加上一些1.5的附加功能

gcj创建的代码可能比在Hotspot Jvm下运行的代码慢得多,并且静态编译时会创建相当大的二进制文件

另一种选择是将Jre和jar捆绑到可执行文件中。此任务有几个程序,launch4j()就是其中之一


您也可以自己提供Java,因为它不需要安装,可以放在与jar相同的目录中。如果您使用Oracles JRE,请检查Eula是否允许以这种方式捆绑。如果没有,您可以使用OpenJdk。

在Java 8中,您可以为Windows/Linux/Mac创建所谓的“自包含软件包”,这实际上是与JRE捆绑在一起的Java应用程序

未来阅读:


<> P>也可能值得一提的是,AcExsior Java:

超前时间(AOT)java编译器,你可能想考虑将JVM与jar绑定。它大约是80MB,但是有很多工具使它变得非常简单。why.do.you.put.periods无处不在?在此之前,请参阅,自2009年以来一直没有更新过。GCJ的级别远远低于1.5。1.3的主要部分不完整,与1.3和1.4相同。@EJP:现在好了吗?;-)我认为自足的软件包是最好的选择:标准的,无成本的,并且可以完成任务。另外,您不需要源代码,它可以在JAR上工作
javapackager
在Java7中可用,但它被称为
javafxpackager