5

这是上下文:我刚刚开发了一个需要以服务器模式(java -server)启动的应用程序。我正在使用 JSE SDK (JDK),运行应用程序没有问题,因为 JDK 具有服务器 VM。现在,我正在尝试创建一个安装程序,这样人们就可以在他们的计算机上安装这个应用程序。但在这一点上,我注意到了这一点:

大多数用户安装的 JRE(为了运行 java 应用程序)没有服务器 VM,所以我的应用程序不会运行。因此,我的问题是:

  • 有没有办法将服务器虚拟机添加到已经安装的 JRE 中???
  • 对于那些没有安装java的用户......我应该建议安装什么包?JDK还是JRE?

我有点困惑......不确定哪些软件包有服务器虚拟机。

4

3 回答 3

6

您可以选择将服务器 HotSpot VM 包含在 JRE 的重新分发副本中。JDK 的私有 JRE 中的“jre\bin\server\”目录包含 HotSpot Server VM。如果您遵循 JDK README 中列出的要求,则可以将其包含在 JRE 的分发中。

来自 JDK 7 自述文件:

在 Microsoft Windows 平台上,JDK 包括 Java HotSpotTM Server VM 和 Java HotSpotTM Client VM。但是,用于 Microsoft Windows 平台的 JRE 仅包括 Java HotSpotTM 客户端 VM。那些希望将 Java HotSpotTM Server VM 与 JRE 一起使用的人可以将 JDK 的 jre\bin\server 文件夹复制到 JRE 中的 bin\server 目录中。软件供应商可以通过重新分发 JRE 重新分发 Java HotSpotTM Server VM。

http://www.oracle.com/technetwork/java/javase/jdk-7-readme-429198.html#jre(2012年 9 月 22 日检索)

于 2012-09-22T17:02:10.990 回答
3

只需使用客户端模式。

你不会找到一个好的解决方案。您可以建议他们都安装启用了服务器模式的 JDK,但您的应用程序的交付应该比这更顺畅。如果您将应用程序交付给服务器人员,您可以轻松地说它需要在服务器模式下运行并让他们处理。

服务器模式是一种优化,可以用启动时间换取长时间的速度改进。任何应用程序都不需要它,尤其是要交付给客户端机器的应用程序。

于 2010-10-14T18:21:07.210 回答
1

私有与公共 JRE - 安装 JDK 会安装私有 Java SE 运行时环境 (JRE) 和可选的公共副本。需要私有 JRE 才能运行 JDK 中包含的工具。它没有注册表设置,完全包含在 jre 目录(通常位于C:\Program Files\jdk1.6.0\jre)中,其位置只有 JDK 知道。另一方面,公共 JRE 可以被其他 Java 应用程序使用,包含在 JDK 之外(通常是 at C:\Program Files\Java\jre1.6.0),在 Windows 注册表中注册(at HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft),可以使用 Add/Remove Programs 删除,可能会也可能不会在浏览器中注册,并且可能会将 java.exe 复制到 Windows 系统目录,也可能不会(使其成为默认的系统 Java 平台)。

JDK安装和故障排除。

于 2011-08-15T15:17:43.550 回答