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

时间:2010-06-10 12:14:20

标签: java eclipse

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

6 个答案:

答案 0 :(得分:9)

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

答案 1 :(得分:4)

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

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

答案 2 :(得分:2)

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

答案 3 :(得分:1)

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

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


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

答案 4 :(得分:1)

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

答案 5 :(得分:0)

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

看看here ..