Java 控制面板和命令行在 Mac OS X 10.9.5 上显示不同的 Java 1.7 版本。这是怎么回事?
Java Control Panel and command line show different Java 1.7 versions on Mac OS X 10.9.5. What's up?
运行 java_home
显示:
> /usr/libexec/java_home -verbose
Matching Java Virtual Machines (1):
1.7.0_45, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home
但是 Java 控制面板显示:
什么给了?谁能解释一下?
如果您通过 Java 使用 jdk-7uNN-macosx-x64.dmg
,它将在 /Library/Java/JavaVirtualMachines/
中安装 jdk
,在 /Library/Internet\ Plug-Ins/
中安装 jre
。
在命令行中,运行 java
指向 /Library/Java/JavaVirtualMachines/jdk1.7.0_NN.jdk/Contents/Home/bin/java
。另一方面,Java控制面板指向/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java
,会自动更新。
基本上,Mac OS X 开始时没有任何 Java,如果任何已安装的应用程序或网站需要 Java,它允许您安装一个 Java JRE.
JRE 是为普通的非程序员用户安装的。它是一个运行时环境,没有关联的开发工具,但包含 Java Webstart。它还带有一个控制面板,允许用户控制安全、更新等内容。
当您想在 MacOS X 上使用 Java 进行编程时,您需要安装 JDK。 JDK安装在不同的路径下,一般与用户级JRE没有关联。也就是没有体现在控制面板中,是为了控制用户级的JRE。
用于 JDK 的工具将指向 JDK 的 JRE,而用于用户级 JRE 的工具将指向它。
我不能确切地说出他们为什么决定在用户 Java 和开发者 Java 之间完全分离。但我可以提供一个猜测:Macs 可以被多个用户使用。假设其中一个用户是开发人员并且正在对 Java 安装进行更改,例如在密钥库中撤销和添加安全密钥,更改安全策略文件等。我想 Oracle 不希望在开发中进行这些更改Java 影响 Mac 的所有其他用户,他们不知道开发环境的存在并且无法在其中进行更改。
您通过从 Oracle 网站下载完整版本来更新 JDK。请注意,每个新的 JDK 都安装 除了 旧的 JDK,但设置为新的默认值。如果您想删除旧的 JDK,您必须手动执行此操作,遵循 instructions on the Oracle site
运行 java_home
显示:
> /usr/libexec/java_home -verbose
Matching Java Virtual Machines (1):
1.7.0_45, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home
但是 Java 控制面板显示:
什么给了?谁能解释一下?
如果您通过 Java 使用 jdk-7uNN-macosx-x64.dmg
,它将在 /Library/Java/JavaVirtualMachines/
中安装 jdk
,在 /Library/Internet\ Plug-Ins/
中安装 jre
。
在命令行中,运行 java
指向 /Library/Java/JavaVirtualMachines/jdk1.7.0_NN.jdk/Contents/Home/bin/java
。另一方面,Java控制面板指向/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java
,会自动更新。
基本上,Mac OS X 开始时没有任何 Java,如果任何已安装的应用程序或网站需要 Java,它允许您安装一个 Java JRE.
JRE 是为普通的非程序员用户安装的。它是一个运行时环境,没有关联的开发工具,但包含 Java Webstart。它还带有一个控制面板,允许用户控制安全、更新等内容。
当您想在 MacOS X 上使用 Java 进行编程时,您需要安装 JDK。 JDK安装在不同的路径下,一般与用户级JRE没有关联。也就是没有体现在控制面板中,是为了控制用户级的JRE。
用于 JDK 的工具将指向 JDK 的 JRE,而用于用户级 JRE 的工具将指向它。
我不能确切地说出他们为什么决定在用户 Java 和开发者 Java 之间完全分离。但我可以提供一个猜测:Macs 可以被多个用户使用。假设其中一个用户是开发人员并且正在对 Java 安装进行更改,例如在密钥库中撤销和添加安全密钥,更改安全策略文件等。我想 Oracle 不希望在开发中进行这些更改Java 影响 Mac 的所有其他用户,他们不知道开发环境的存在并且无法在其中进行更改。
您通过从 Oracle 网站下载完整版本来更新 JDK。请注意,每个新的 JDK 都安装 除了 旧的 JDK,但设置为新的默认值。如果您想删除旧的 JDK,您必须手动执行此操作,遵循 instructions on the Oracle site