Java控制面板和命令行在Mac OS X 10.9.5上显示不同的Java 1.7版本.这是怎么回事?

mar*_*gti 10 java macos

跑步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
Run Code Online (Sandbox Code Playgroud)

但Java控制面板说:

Java控制面板报告的Java版本

是什么赋予了?谁能解释一下?

Rea*_*tic 20

基本上,Mac OS X在没有任何Java的情况下启动,如果任何安装的应用程序或网站需要Java,它允许您安装Java JRE.

JRE安装时考虑了普通的非程序员用户.它是一个运行时环境,没有相关的开发工具,并且包含Java Webstart.它还配有一个控制面板,允许用户控制安全性,更新等内容.

如果要在MacOS X上使用Java进行编程,则需要安装JDK.JDK安装在不同的路径中,通常与用户级JRE没有连接.也就是说,它没有反映在控制面板中,控制面板旨在控制用户级JRE.

旨在与JDK一起使用的工具将指向JDK的JRE,而那些旨在与用户级JRE一起工作的工具将指向这一点.

我不能确切地说他们为什么决定在用户​​Java和开发人员Java之间进行完全分离.但我可以猜测:Mac可以被多个用户使用.假设其中一个用户是开发人员,并且正在对Java安装进行更改,例如在密钥库中撤消和添加安全密钥,更改安全策略文件等.我想Oracle不希望开发Java中的这些更改影响所有Mac的其他用户,他们不了解开发环境的存在,也无法对其进行更改.

您可以通过从Oracle Web站点下载完整版本来更新JDK.请注意,除了旧的JDK 之外,还安装了每个新的JDK,但是将其设置为新的默认值.如果要删除旧的JDK,则必须按照Oracle站点上的说明手动执行此操作


Ala*_*lan 5

如果您使用jdk-7uNN-macosx-x64.dmg通过Java的,它将安装jdk在/Library/Java/JavaVirtualMachines/和jre中/Library/Internet\ Plug-Ins/.

在命令行,运行java指向/Library/Java/JavaVirtualMachines/jdk1.7.0_NN.jdk/Contents/Home/bin/java.另一方面,Java控制面板指向/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java,它将自动更新.