我正在运行 OS X Lion。它附带 JRE6。我想安装 JRE8。我可以在此处下载 Oracle 所说的 JRE 8 文件:
http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html
当我在命令行上检查我的 Java 版本时(安装 JRE 8 后),我得到了这个:
hostname:~ username$ java -version
java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-462-11M4609)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-462, mixed mode)
hostname:~ username$ which java
/usr/bin/java
hostname:~ username$ ls -al /usr/bin/java
lrwxr-xr-x 1 root wheel 74 Dec 20 2013 /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
这匹配其他人看到了什么。因此,我按照建议将 JAVA_HOME 添加到 ~/.profile。此修复已修复java -version
,它现在报告 Java 8。但是,非命令行应用程序仍使用 Java 6。如果我运行 Eclipse Luna CDT,它会报告:
“JVM 版本 1.6.0_65 不适用于该产品。需要版本 1.7 或更高版本。”
这是有道理的——当我双击 Eclipse 时,我的 Bash shell 甚至没有运行。
我如何实际上安装 JRE 8?
答案1
您可以从 Java 控制面板查看和管理 JRE 版本。
[Apple 图标菜单] > 系统偏好设置 > Java
这将启动 Java 控制面板作为单独的应用程序,该应用程序将接管前台应用程序。
Java 控制面板 > Java > 查看…
您应该能够从那里找到答案。
答案2
无奈之下,我安装了JDK。这解决了问题。java -version
给出了正确的版本。Eclipse CDT 现在运行并使用 Java 8。此外,我不需要设置 JAVA_HOME 环境变量。
我不需要 JDK,只需要 JRE,因为我正在运行 Eclipse CDT(我正在开发 C 代码,而不是 Java)。但是,安装 JDK 除了安装 JRE 浏览器插件外,还会在此处安装 JRE:
/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk
如果有人能告诉我如何让桌面 Java 应用程序(Eclipse、Lotus Notes 等)使用 Java 8 JRE没有安装 JDK——这将是更好的答案。
仅供参考,这是我发现的有关 Java 实际启动方式的信息:
/usr/bin/java
是 的符号链接/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
。
/System/Library/Frameworks/JavaVM.framework/Versions/Current
是指向/System/Library/Frameworks/JavaVM.framework/Versions/A
请注意,/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/jre/bin/java
和/System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/java
是两个不同的可执行文件(它们的大小不同)。但是,两者都会报告它们是 Java 版本 8。我发现它们使用框架/System/Library/PrivateFrameworks/JavaLaunching.framework/Versions/A/JavaLaunching
来exec
安装最新版本的 Java。