我正在打包我的软件,并想知道JRE的安装是如何工作的。它是简单地复制本地系统上的二进制文件并相应地设置类路径,还是由安装程序完成任何其他步骤?
对于Windows,JRE二进制文件存储在C:\Program Files\Java\jre7
中,我可以将此文件夹复制到其他计算机(具有相同处理器32位或64位)以使JRE正常工作。如果是这样,那么需要设置的环境变量是什么?
答案 0 :(得分:2)
我可以将此文件夹复制到其他机器(使用相同处理器32位或64位)以使JRE正常工作
是的,没问题。除非您还想注册.jar扩展名,以便双击它们。
在这种情况下,请查看ftype
和assoc
命令。他们可以这样做,例如来自批处理文件或安装程序。
如果是这样,那么需要设置哪些环境变量?
无需设置任何环境变量。
确保在启动应用程序时正确地限定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。