【问题标题】:Java Preferences.app doesn't change default java versionJava Preferences.app 不会更改默认 Java 版本
【发布时间】:2010-11-03 13:35:56
【问题描述】:

如果 JAVA_HOME 导出为 /Library/Java/Home (这是一个链接到 /System/Library/Frameworks/JavaVM.framework/Home)

如果没有设置 JAVA_HOME,命令行中 java -version 返回的版本将由 Java Preferences.app 决定。

我通过反复试验发现了这一点。我对记录在哪里感兴趣。

我不确定 CurretntJDK 对于用户更改是否安全。 Java Preferences.app 不会改变它。

【问题讨论】:

    标签: java macos


    【解决方案1】:

    不要更改 currentJDK,我做了,但它搞砸了我的 java

    【讨论】:

      【解决方案2】:

      设置JAVA_HOME 环境变量是在会话中指定Java 版本的正确方法。您可以在 info.plist 文件中指定JAVA_HOME,也可以通过创建一个在启动应用程序之前设置环境变量的加载程序应用程序。

      请注意,设置JAVA_HOME 通常是个坏主意,因为可用的 Java 版本因平台/操作系统版本而异。例如,只有 64 位 Intel Mac 具有 Java 6 和 Leopard。 32 位和 64 位 Intel Mac 都具有 Java 6 和 Snow Leopard。

      我发现,如果您想支持配备 Tiger 或 Leopard 的 32 位 Intel Core Duo Mac,最好的办法是针对 Java 1.5。 Java 1.6 JRE 将运行 Java 1.5 应用程序。如果您需要 Java 1.6,那么您必须向您的用户要求 64 位 Intel with Leopard 或任何 Intel with Snow Leopard。请注意,SoyLatte 为 Tiger 和 Leopard 用户提供了 Java 1.6 32 位替代方案。

      “java -version”确实会根据JAVA_HOME 的设置而改变,而且,正如您所注意到的,Java 首选项也会改变。

      总而言之,您不应该真正设置JAVA_HOME,除非您通过应用程序分发Java JRE,例如SoyLatte。在这种情况下,您知道目标版本和路径将在那里。否则,您不能依赖操作系统提供的特定版本。

      您可以在 Apple 的开发者网站上找到文档: http://developer.apple.com/mac/library/documentation/Java/Conceptual/Java14Development/01-JavaOverview/JavaOverview.html

      【讨论】:

        【解决方案3】:

        此外,您应该避免在 .bashrc/.profile 中设置 JAVA_HOME 。如果设置了,Java Preferences.app 没有效果,并且

        java -version
        

        总是返回它所认为的“默认”版本(在我的例子中,在 Mac OS X Leopard 上,这是 Java 1.5)。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-10-04
          • 2012-07-05
          • 2020-11-30
          • 2014-03-24
          • 2010-09-20
          相关资源
          最近更新 更多