2009-12-07 43 views
3

我试图捆绑Java作为应该默默地用单一的点击安装Java产品的一部分,有一些问题:Java服务器JVM安装32位系统

我的安装具有以下要求: 已经没有保持沉默,不需要用户输入或动作excpect上的安装文件双击(无配置和安装后的步骤) 已安装的Java使JAVA_HOME指向的Java SE安装了服务器JVM

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

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

但是这种解决方案很难在无提示安装中自动优雅地自动化。如果不重新打包整个Java分发,就必须有更好的方法来做到这一点。有没有人遇到同样的问题,并提出一个更优雅的解决方案?

+0

同样的问题,是的,但没有好的解决方案。 – Lucero 2009-12-07 08:30:24

回答

1

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

这样,我甚至可以将Java嵌入到应用程序目录中,而不依赖于任何已安装的Java版本。

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

+0

“安装程序会在注册表和%WinDir%等等中留下很多东西,这些都不是你真正需要的。” - 这是有据可查的行为,还是仅仅基于经验?如果安装程序版本之间的行为发生变化会怎样像这样压缩整个JRE在同一时间听起来很吸引人,也很可怕。 – 2009-12-07 08:46:19

+1

我不确定它是否记录在某处,但我很肯定Sun无法改变这种行为。注册表项仅用于使外部代码更容易找到默认JVM。 Java不需要它们工作。我同意它需要信仰的飞跃:) – 2009-12-07 08:57:54

+0

有谁知道你必须跳过箍来获得一个工作服务器jvm在Windows上的原因?我没有看到为什么在jre上的jre没有安装缺省的服务器jvm的逻辑。 – Mans 2009-12-07 09:25:45

1

制作您自己的安装程序。

我使用inno setup编译器,适合我的目的。 如果您需要注册表项,您可以导出它们,将它们包含在安装程序中,包含这些文件以及在这里和那里稍作更改,然后就完成了。无声安装程序,可根据您需要的确切规格配置相关内容。

它配备了一个易于使用的脚本向导。

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

相关问题