【发布时间】:2020-07-22 15:18:15
【问题描述】:
我使用 Java 8(JDK 8) 创建了一个程序,但是当我尝试在不是我的设备上运行它时(所以没有 JDK),它让我下载了一个 JRE。 1)为什么不是所有程序在您下载它们时都让您这样做?只是大多数程序不使用Java吗? 2)我如何创建一个安装exe来安装JRE和程序。 (到目前为止,我只是将我的程序作为 exe 运行)。
【问题讨论】:
-
@user 我认为 OP 知道这一点。顺便说一句,您不需要
JAVA_HOME来编译或执行程序。但是maven等工具可能需要它来定位JDK/JRE安装目录。 -
我认为这个 exe 是一个安装程序或捆绑到一个 exe 的程序。
-
Java 背后的理念是“一次编写,到处运行”。但是,如果所有操作系统都以不同的方式工作,如何实现呢?想法是为每个操作系统创建其特定的“翻译器”,该“翻译器”将使用该操作系统可用的工具来生成在 java 代码中指定的执行(或者更准确地说是在
.class文件中)。那就是JRE。为什么 Java 没有预装在每个操作系统上? IMO,也许是安全性(就像浏览器不想再包含 Flash,但允许用户安装它)。无论如何,从 Java 9 和模块系统开始,您可以使用jlink构建应用程序,其中包含您想要的操作系统的特定部分(或整个)JRE。 -
@user 当我说我正在运行一个 exe 时,我将一个 jar 捆绑到一个可执行文件中,这样我就可以在 SDK 之外运行它。
-
@Pshemo 你有我可以关注的 jlink 链接吗?
标签: java exe executable executable-jar