![Java 版本在 GUI 和命令行中不同](https://linux22.com/image/68394/Java%20%E7%89%88%E6%9C%AC%E5%9C%A8%20GUI%20%E5%92%8C%E5%91%BD%E4%BB%A4%E8%A1%8C%E4%B8%AD%E4%B8%8D%E5%90%8C.png)
在我的 Mac 上,我有两种不同的激活 JAVA 版本指示
$ uname -a
Darwin Mr-MBP.lan 14.4.0 Darwin Kernel Version 14.4.0: Thu May 28 11:35:04 PDT 2015; root:xnu-2782.30.5~1/RELEASE_X86_64 x86_64
通过命令行
$ java -version
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)
不幸的是通过 GUI
GUI java指示为1.8
所以我尝试通过命令来执行此操作,但是它找不到 1.8 版本(它也不在 JVM 的目录中)
$ ls /Library/Java/JavaVirtualMachines/
jdk1.7.0_45.jdk
$ /usr/libexec/java_home -v 1.8.0_45 --exec javac -version
Unable to find any JVMs matching version "1.8.0_45".
javac 1.7.0_45
重新启动并没有解决问题。
有人有什么建议吗?
谢谢。
答案1
感谢黄鼠狼男孩
Java 有两个部分。
OS X 使用 JRE(您使用的是 1.7)在 Mac 上运行 Java 应用程序。
然后是 Java Web 插件(您使用的是 1.8),用于在网页上运行 Java。
如果您想更新两者,则需要安装完整的 JDK。
也就是说,你现在所发生的事情确实没有任何问题。您需要最新的插件来解决安全问题,但使用 JRE 来运行本地应用程序,有些人会保留旧版本,因为他们的应用程序可能无法在较新的版本上运行。
对于我自己来说,这仍然有点令人困惑。读完这篇文章后,我有点困惑,因为我没有安装另一个版本(现在更新jdk之前),或者网络插件...... http://www.javatpoint.com/difference- Between-jdk-jre-and-jvm