2017-01-08 21 views
4

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

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

+0

Duplicates http://stackoverflow.com/questions/147181/how-can-i-convert-my-java-program-to-an-exe-file –

+1

afaik OpenOffice用C++编写 – trooper

+0

您已经安装了Java如果Netbeans跑了。 – EJP

回答

2

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

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

+0

好的,所以你基本上说应用程序可以附带它自己的JRE?因为当应用程序运行时,计算机上肯定没有(安装)它。 – Celeritas

+0

是的,例如Netbeans与JDK/JRE,你可以按照这个http://www.oracle.com/technetwork/java/javase/downloads/jdk-netbeans-jsp-142931.html – shazin

+0

@Celeritas看看launch4j和其他像这样的,它可以捆绑jar和jre来使它们成为一个.exe(至少对于windows而言)例如 – NeeL

0

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

JRE解释Java字节码(当然还有更多的事情)。有编译器从Java源代码或字节代码生成本机可执行文件。我唯一知道的就是gcj,而且最后一次检查它仅适用于Java 5,而且似乎并不可靠。

大多数java应用程序要么需要JRE,要么包含在发行版中。

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

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

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

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

相关问题