用Java编写的程序如何不需要JRE?

时间:2017-01-08 01:14:15

标签: java executable portability

我进行了全新安装,在安装Java之前能够运行NetBeans和OpenOffice。如果这些程序是用Java编写的,那么这怎么可能呢?我知道存在一些.class.exe转换器,但我认为这些是黑客攻击(不适合全球部署的大型应用程序)。在没有JRE的情况下在Java中部署应用程序的常见方法是什么?有标准的,或最常见的方式吗?

起初我认为它与Jar文件有关,但从我的红色开始,这些需要现有的Java安装才能运行。

2 个答案:

答案 0 :(得分:2)

所有Java应用程序都在JRE之上运行。甚至NetBeans和OpenOffice。

大多数可部署的Java应用程序都附带了JRE。所以你可能会发现它没有JRE,但实际上有一个JRE,应用程序将运行在它之上。

答案 1 :(得分:0)

只有两种方法可以运行程序:您可以将其编译为机器代码,也可以使用解释器。

JRE解释Java字节码(当然还有很多东西)。有些编译器可以从Java源代码或字节代码生成本机可执行文件。我唯一知道的是gcj,我最后一次检查它只是针对Java 5而且似乎不太可靠。

大多数Java应用程序要么需要JRE,要么包含在分发中。

例如,无论是否包含JRE,您都可以获得Oracle SQL Developer。关于Netbeans,有需要JDK的发行版(JRE是不够的,因为它需要编译器和开发工具),还有JDK和Netbeans捆绑包。

现在,启动Java应用程序有三种主要方式(不包括Java Web Start等):手动运行java命令,使用执行此操作的脚本或运行名为“wrapper”的可执行文件。 / p>

您可以为任何应用程序自定义几个包装器。 PJ Fanning的链接包括一个列表,如果没有记错的话。包装器使用JRE来运行应用程序,并在系统启动时轻松启动java应用程序作为服务。

所以,除非你找到一个编译成本机代码的应用程序(理想情况下,你不能说它是一个Java应用程序),你总是使用一些JRE,无论是预装的,还是捆绑的之一。