【问题标题】:Java server jvm installation on windows 32 bit systems在 Windows 32 位系统上安装 Java 服务器 jvm
【发布时间】:2009-12-07 08:26:55
【问题描述】:

我正在尝试将 java 捆绑为 java 产品的一部分,该产品应通过单击静默安装,但遇到了一些问题:

我的安装有以下要求: 没有静音,不需要用户输入或操作,除非双击安装文件(无需配置和安装后步骤) 必须设置 java 以便 JAVA_HOME 指向带有服务器 jvm 的 Java SE 安装

在带有 sun java 安装程序的 win32 系统上是否有可能做到这一点?我知道默认情况下 jre 不包含服务器 jvm。但即使在安装 jdk 时,已安装(并映射到 JAVA_HOME)的公共 jre 也不包含服务器 jvm。在 sun 自己的 README 文件 (Sun README) 中,他们建议复制文件:

jre\bin\服务器\ 在 Microsoft Windows 平台上,JDK 包括 Java HotSpot(TM) 服务器虚拟机和 Java HotSpot 客户端虚拟机。 但是,适用于 Microsoft Windows 的 Java SE 运行时环境 平台仅包括 Java HotSpot 客户端 VM。那些希望 将 Java HotSpot Server VM 与 Java SE 运行时一起使用 环境可能会将 JDK 的 jre\bin\server 文件夹复制到 Java SE 运行时环境中的 bin\server 目录。

但这种解决方案很难在静默安装中优雅地自动化。必须有一种更好的方法来做到这一点,而无需重新打包整个 java 发行版。有没有人遇到过同样的问题,并提出了更优雅的解决方案?

【问题讨论】:

  • 同样的问题,是的,但没有好的解决方案。

标签: java jvm installation


【解决方案1】:

在过去的几年里,我这样管理 Java:我下载安装程序,将其安装在某个地方,将所有文件打包成一个 ZIP,然后使用该 ZIP 文件在任何地方部署 Java。安装程序会在注册表和 %WinDir% 等中留下很多您并不真正需要的东西。这也允许我移动一些文件(如bin\server\jvm.dll 或安全相关设置)。

这样,我什至可以将 Java 嵌入到应用程序目录中,独立于任何已安装的 Java 版本。

在启动应用程序之前,只需在一个小批量脚本中设置 JAVA_HOME 即可。您可以使用%~dp0 使其完全独立于位置(%~dp0 扩展为指向批处理文件的路径)。

【讨论】:

  • "安装程序会在注册表和 %WinDir% 等中留下很多你并不真正需要的东西。" - 这是有据可查的行为,还是仅仅基于经验?如果此行为在安装程序版本之间发生变化怎么办?像这样压缩整个 JRE 听起来既吸引人又吓人。
  • 我不确定它是否记录在某处,但我很确定 Sun 无法改变这种行为。注册表项只是为了让外部代码更容易找到默认的 JVM。它们不是 Java 工作所必需的。我同意这需要信心的飞跃:)
  • 有谁知道你必须跳过箍才能在 Windows 上获得工作服务器 jvm 的原因?我看不到为什么linux上的jre默认安装了服务器jvm而windows jre没有的逻辑。
  • Windows 是桌面操作系统,Linux 是服务器操作系统……大多数时候。因此,将其设为默认值是有意义的。此外,服务器管理员应该知道他们在做什么,而普通用户可能会对 Java 为什么要在他们的计算机上安装服务器 VM 感到困惑。
【解决方案2】:

制作您自己的安装程序。

我使用 inno setup 编译器,非常适合我的目的。 如果您需要注册表项,您可以导出它们,将它们包含在安装程序中,包含文件,并在这里和那里进行一些更改,您就完成了。静默安装程序,可根据您需要的确切规格进行配置。

它带有一个易于使用的脚本向导。

我提到一个特定的,因为它是免费的。最终,自己制作安装程序才是解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-19
    • 1970-01-01
    • 2016-07-16
    • 2019-07-17
    • 2016-02-20
    • 1970-01-01
    相关资源
    最近更新 更多