当前位置: 首页 > 知识库问答 >
问题:

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

东方国安
2023-03-14

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

我已经从Oracle的主页下载了JDK8_U5,并运行了安装程序。

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

> 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)

我浏览并删除了Java1.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的符号链接。a/commands的内容是一系列文件(不是符号链接)。

> 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 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
> 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
> java -version
java version "1.8.0_05"
> javac -version
javac 1.7.0_21

然而,我仍然不知所措--从这里我该往哪里去?如何安装javac 1.8?

共有1个答案

秦城
2023-03-14

如果/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博客中找到解决方案

rm -rf ~/Library/Java/Extensions
sudo rm -rf /Library/Java/Extensions
 类似资料:
  • 问题内容: 我在OSX上从JDK 1.7-> 1.8升级时遇到问题。升级已完成,但是javac仍返回1.7作为版本。 我已经从Oracle主页下载了JDK 8_u5 ,并运行了安装程序。 安装后,我还采取了以下步骤: 我已经阅读并删除了Java 1.7(以及所有其他JDK版本),然后重新运行安装程序: 仍然没有用,javac报告版本为1.7.0_21 在该路径中,是的符号链接。的内容是一系列文件(

  • 我在Ubuntu18.04上使用ELasticsearch。当我尝试运行“./elasticsearch-setup-passwords”脚本时,它显示以下错误。 未来版本的Elasticsearch将需要Java 11;您的Java版本[/usr/lib/jvm/java-8-openjdk-amd64/jre]不符合此要求 但当我检查Jaa版本时,它显示的是Java 11号。 我把Java从8

  • 下面是我用来将mongodb版本从2.6.9升级到最新版本的命令,但它仍然显示了以前的版本。让我知道我在升级过程中做错了什么。问题是仍然显示升级后安装的旧版本。 我提到的文档--Mongodb文档 我遵循的步骤- sudo apt-key adv--keyserver hkp://keyserver.ubuntu.com:80--recv 7f0ceb10 echo“deb http://repo

  • 升级到Ubuntu13.10后,当我点击Eclipse中的任何菜单(帮助、窗口、运行)时,它们都不会出现。只有菜单存根和选择项可见。 我尝试安装新鲜4.3和同样的事情正在发生。还有人经历过这种行为吗?

  • 我想看看在phpUnit运行期间当前执行哪个测试。 我使用参数,但仍然只得到点: : 这是什么原因呢?

  • 在的下载站点上,它说你可以克隆它来更新它。我下载它是为了安装它,但我开始真正进入并希望从现在开始每次更新它时都克隆它。我想我找到了我们需要克隆它的地方,经过了大量的搜索和比平时更少的文档。如果我是对的,它就在目录中,就在我的眼皮底下! 我是不是没有找到难以捉摸的文件夹,还是团队直到最新版本发布后才让您直接克隆它?例如,我知道VirtualBox就是这样做的。 我知道这有点重复这个问题,但我尝试了它