我们可以在没有JRE的系统中运行Java应用程序吗?

我创建了一个java apllication。 我为我的应用程序创建了Excecutable jar和Exe文件。 但它不能在没有安装计算机的系统上运行。 怎么做? 是否有可能在EXEcutable jar或Exe文件本身中配置JRE? 任何想法?

我认为这个项目:launch4j可能对你有用。 它可以将jar包装在可执行文件中并捆绑JRE,使其行为类似于本机应用程序。

JSmooth是一个Java可执行包装器。 它为您的Java应用程序创建本机Windows启动程序(标准.exe)。 它使Java部署更加顺畅和用户友好,因为它能够自己找到任何已安装的Java VM。

当没有可用的VM时,包装器可以自动下载并安装合适的JVM ,或者只是显示消息或将用户重定向到网站。

您无法将JRE打包到Jar中,但您可以将其与jar文件一起打包并让安装程序管理安装。 Sun / Oracle允许仅为此目的重新分发JRE(没有JRE的系统)。

是的,可以从java应用程序创建特定于操作系统的可执行文件,已经有一些关于此主题的问题,例如: 在Windows可执行文件中嵌入JRE?

Java始终被编译为独立于操作系统的字节代码,该代码只能在Java虚拟机中执行,就像JRE附带的那样。


只是因为你用’eclipse’标记了你的问题并提到了’exe’文件…以防万一,你创建了一个eclipse RCP应用程序,然后有一种优雅的方法将应用程序与java运行时环境捆绑在一起:只需创建一个应用程序目录中名为’jre’的文件夹(与插件和function文件夹相同)并将JRE复制到该文件夹​​。 在eclipse导出页面中甚至可能有一个复选框,用于将应用程序与JRE捆绑在一起。

是的,这是我在这里回答的另一个问题的一部分。 Java认知安装程序,它将打包JRE并包含它,或者编译为“native”( JET , GCJ或IKVM )。 我已经使用了最后一个非GUI应用程序,它运行得相当好。

您可以尝试使用CGJ以二进制编译它。 您必须在要从中捆绑应用程序的主机上安装Cygwin或MinGW,但这是一个明确的解决方案,因为它以本机代码编译整个程序。

看看这里 ..