gpt4 book ai didi

java - 升级到Java8后,javac仍然显示1.7

转载 作者:IT老高 更新时间:2023-10-28 20:51:48 25 4
gpt4 key购买 nike

我在 OSX 上从 JDK 1.7 -> 1.8 升级时遇到问题。升级已完成,但 javac 仍返回 1.7 作为版本。

我已经下载了JDK 8_u5从 Oracle 的主页,然后运行安装程序。

我还采取了以下步骤,安装后:

> export JAVA_HOME=`/usr/libexec/java_home -v 1.8`  (Executed in my .bashrc file)

> echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home

> javac -version
javac 1.7.0_21

> $JAVA_HOME/bin/javac -version
javac 1.7.0_21

> $JAVA_HOME/bin/java -version
java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode)

我已经完成并删除了 Java 1.7(和所有其他 JDK 版本),然后重新运行安装程序:

> ls /Library/Java/JavaVirtualMachines
jdk1.8.0_05.jdk

还是没用,javac报告版本为1.7.0_21

> which javac
/usr/bin/javac

> ls -ltra /usr/bin/javac
[snipped] /usr/bin/javac -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javac

在该路径中,Current 是到 A 的符号链接(symbolic link)。 A/Commands 的内容是一系列文件(不是符号链接(symbolic link))。

> cd A/Commands
> ./javac -version
javac 1.7.0_21

> ./java -version
java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode)

编辑

在原帖的基础上,我对 jenv 进行了一些挖掘。 ,正如 this answer 上的建议.

> jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home                 
> jenv global oracle64-1.8.0.05
> jenv version
oracle64-1.8.0.05 (set by /Users/martypitt/.jenv/version)

> jenv info java
Jenv will exec : /Users/martypitt/.jenv/versions/oracle64-1.8.0.05/bin/java

> jenv info javac
Jenv will exec : /Users/martypitt/.jenv/versions/oracle64-1.8.0.05/bin/javac

> javac -version
javac 1.7.0_21

这分散了我的想法,即这是潜伏在我的路径中的随机 javac,不知何故被调用。

可以肯定的是,我已经彻底破解了我的 Java,并再次尝试:

> cd /Library/Java/JavaVirtualMachines
> ls
jdk1.7.0_55.jdk
jdk1.8.0_05.jdk
> sudo rm -rf *
> ls
<<empty>>
> java -version
java version "1.6.0_65"
> javac -version
javac 1.6.0_65
> which javac
/usr/bin/javac

然后我重新下载了 fresh copy the installer并运行它。

> java -version
java version "1.8.0_05"
> javac -version
javac 1.7.0_21

更新

我尝试删除所有 JDK、XCode 和所有开发人员工具,然后重新安装。结果相同。

但是,我仍然不知所措——我该去哪里?如何安装 javac 1.8?

最佳答案

如果 /usr/libexec/java_home -v 1.8.0_05 --exec javac -version 返回正确的版本,那么您的问题在于:

/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK

使用特权用户执行:

cd /System/Library/Frameworks/JavaVM.framework/Versions/
rm CurrentJDK
ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/ CurrentJDK

解决方案位于 Mankeh Blog


同时检查 this answer在 super 用户上动态切换 JDK 版本。


更新:我想我找到了罪魁祸首!

试试这个:

rm -rf ~/Library/Java/Extensions
sudo rm -rf /Library/Java/Extensions

解决方案位于: Java 1.7 on OSX 10.9.2 running as 1.5?

关于java - 升级到Java8后,javac仍然显示1.7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23202516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com