繁体   English   中英

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

[英]How can programs written in Java not require the JRE?

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

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

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

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

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

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,无论是预先安装的JRE还是捆绑的JRE。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM