Java控制面板和命令行显示Mac OS X 10.9.5上的不同Java 1.7版本。什么';什么事?

Java控制面板和命令行显示Mac OS X 10.9.5上的不同Java 1.7版本。什么';什么事?,java,macos,Java,Macos,运行java\u 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/

运行
java\u 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控制面板说:


有什么好处?有人能解释一下吗?

如果您使用
jdk-7uNN-macosx-x64.dmg
via,它将
jdk
安装在
/Library/Java/JavaVirtualMachines/
/Library/Internet\Plug-Ins/


在命令行中,运行
java
指向
/Library/java/JavaVirtualMachines/jdk1.7.0\u NN.jdk/Contents/Home/bin/java
。另一方面,Java控制面板指向将自动更新的
/Library/internetplugins/JavaAppletPlugin.plugin/Contents/Home/bin/Java

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

JRE的安装考虑到的是一个普通的非程序员用户。它是一个运行时环境,没有相关的开发工具,并且包括JavaWebStart。它还带有一个控制面板,允许用户控制安全、更新等事项

当你想在MacOS X上用Java编程时,你需要安装一个JDK。JDK安装在不同的路径中,通常没有与用户级JRE的连接。也就是说,它不会反映在控制面板中,该面板旨在控制用户级JRE

用于JDK的工具将指向JDK的JRE,而用于用户级JRE的工具将指向该JRE

我不能确切地说为什么他们决定将用户Java和开发人员Java完全分开。但我可以猜测:Mac可以被多个用户使用。假设其中一个用户是开发人员,正在对Java安装进行更改,如撤销并在密钥库中添加安全密钥、更改安全策略文件等。我想Oracle不希望Java开发中的这些更改影响Mac的所有其他用户,他们不知道发展环境的存在,不能对其进行改变


您可以通过从Oracle网站下载完整版本来更新JDK。请注意,每个新的JDK都是在旧的JDK之外安装的,但是被设置为新的默认值。如果要删除旧的JDK,必须按照

手动执行,所以您的意思是控制面板显示了JRE版本,对吗?为什么控制面板不使用JDK附带的JRE版本(几乎在我3年前购买MBP时就安装了)?谢谢。如何最好地更新我的JDK版本?从Oracle下载完整的安装软件包,只需阅读默认安装说明即可。谢谢您提供的所有信息!这就是我目前的状态。现在我只需要知道如何解决这个问题。你是如何解决这个问题的?@sudharma.puranik你可以下载更新的并安装它,两者都会更新。