JRE安装如何工作?

时间:2012-04-17 21:15:28

标签: deployment installer classpath java

我正在打包我的软件,并想知道JRE的安装是如何工作的。它是简单地复制本地系统上的二进制文件并相应地设置类路径,还是由安装程序完成任何其他步骤?

对于Windows,JRE二进制文件存储在C:\Program Files\Java\jre7中,我可以将此文件夹复制到其他计算机(具有相同处理器32位或64位)以使JRE正常工作。如果是这样,那么需要设置的环境变量是什么?

4 个答案:

答案 0 :(得分:2)

  

我可以将此文件夹复制到其他机器(使用相同处理器32位或64位)以使JRE正常工作

是的,没问题。除非您还想注册.jar扩展名,以便双击它们。

在这种情况下,请查看ftypeassoc命令。他们可以这样做,例如来自批处理文件或安装程序。

  

如果是这样,那么需要设置哪些环境变量?

无需设置任何环境变量。

确保在启动应用程序时正确地限定javaw.exe(或java.exe)的路径(例如通过批处理文件)。

答案 1 :(得分:1)

您可以将整个JRE放在子目录中,并根据子目录引用java.exe。其他产品经常这样做。

您无需设置任何环境变量。

<强>更新

如果这是一个不是JRE工具包的商业应用程序(例如Maven或Ant之类的东西),则不要依赖全局环境变量JAVA_HOME,PATH或CLASSPATH来设置。如果要创建运行时的批处理文件,请在应用程序的上下文中自动设置该文件,这样可以正常工作。但是不要依赖它们在系统中设置。

所有人都需要更改这些以使用某些版本的1.7或1.8测试版,或者实际上是JRE的任何子版本来破坏您的应用程序,然后您将收到有关您的应用程序破坏的客户支持电话,当他们真正做的是将他们的JAVA_HOME改为荒谬时,因为他们误读了Ant文档。

如果您提供的工具集与JDK一起使用,例如Ant或Maven,您可能希望使用它们已安装的任何JRE / JDK,因为这是您工具的重点。

答案 2 :(得分:0)

简短版本取决于。但是在大多数情况下,二进制兼容性和库路径的约束足以使JRE在共享环境中工作(就像我们在工作中的某些机器中那样)。

因为Java提供了一个处理请求的虚拟机,并且因为它可以完全独立于系统拥有的其他一些铃声和口哨,所以你对类路径和二进制处理的直觉是正确的。 然而,您可能会遇到一些库,这些库需要一组格式良好且特定于系统的路径和库,这些路径和库在第三方库提供的某些OS包中提供。

简而言之:如果您可以选择从其安装程序安装Java,因为这将保证所有类路径详细信息,所有库,所有日志记录工具以及所有特定于系统的勘误都会得到解决,尽管Andrew Finnell指出,你still need to set the environment variables manually。对于大多数需求,只有必需的严格子集(参见其他答案),但是在绑定此类问题时,这是最有趣的极端情况。

答案 3 :(得分:0)

如果未指定任何参数,JRE安装程序将安装所需的二进制文件和可执行文件,还会创建所需的Windows注册表项以配置JRE安装。

您也可以使用“-static”选项进行安装(请参阅JRE安装程序documentation),在这种情况下除了将文件复制到指定路径之外什么都不做。

然后您将手动需要您的环境变量。对于命令行,最常见的是:PATH,JAVA_HOME和CLASSPATH。