4

我一直在网上和这个论坛上寻找将 Java 运行时环境包含在我的 Java 应用程序中的正确方法。

我知道 JRE 依赖于机器,因此,如果我想为 MAC 或 Linux 进行部署,随我的应用程序提供的 JRE 将会改变。

我真正想知道的是(假设我之前说的是正确的),是:

“有没有办法检查客户端机器上是否安装了 JRE,如果没有在尝试运行我的应用程序之前安装它?”

因为我认为不可能:

您是否认为我应该使用适合客户端系统的 JRE 文件夹部署我的应用程序,并使用 JRE 文件夹中包含的 java.exe 使用脚本启动我的应用程序?

这避免了安装任何 Java 的东西,但对我来说这看起来不是一个好习惯......

4

2 回答 2

3

如果您的应用程序是客户端的,我将提供两种选择:使用和不使用 JRE 进行安装。许多 Java 应用程序提供这两种安装。例如,SmartGit 应用程序允许您使用捆绑的 JRE 或使用现有 JRE(其用户有责任拥有兼容的 java 版本)的 JRE 下载安装。许多应用程序服务器都带有自己的 JDK,该 JDK 已包含在安装中。

因此,如果您不想给客户带来任何麻烦,那么将部署与您的 JRE 捆绑在一起就可以了;但是,我也允许非 JRE 安装(以满足挑剔者:)。

如果您的应用程序是服务器端的,通常它不附带 JRE,但同样,这不是规则。

此外,您的运行/安装脚本可能会检查是否安装了正确的 JRE 或 JDK(通过检查是否设置了 JAVA_HOME 等),然后在缺少 JRE 时退出。更重要的是,该脚本甚至可以下载 java 并将其安装在本地 - 尽管只使用您为应用程序准备的捆绑 JRE 会更实用。或者,如果检测到 JRE,您可能会询问用户是否要使用现有的 java 或捆绑的。

捆绑 JRE 没什么大不了的。即使我有时会使用捆绑的 JRE 安装 java 应用程序,因为我将系统打开到例如应用程序不支持的新版本或 64 位版本的 java 等等......

希望这可以帮助 ;)

于 2013-04-02T09:09:44.230 回答
1

java -versionwindows的CMD命令告诉JVM版本;所以你可以根据这个命令的输出来决定是否需要安装。

C:\用户\501200I958>java-版本

java version "1.7.0_17" Java(TM) SE Runtime Environment (build 1.7.0_17-b02) Java HotSpot(TM) 64-Bit Server VM (build 23.7-b01, mixed mode)

于 2013-04-02T10:03:15.420 回答