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

mvn不会识别正确的java

汝才良
2023-03-14

所以我和这个人有几乎完全一样的问题:

Maven 安装 OSX 错误 不支持的主要.minor 版本 51.0

我认为问题出在我的符号链接中。我定义了$JAVA_HOME。bash_profile和java版本正确地报告了版本。然而,出于某种原因,mvn正在尝试使用旧版本的java。

这是我机器上所有东西的列表:

/usr/libexec/java_home -verbose
Matching Java Virtual Machines (5):
    1.8.0_40, x86_64:   "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home
    1.7.0_79, x86_64:   "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home
    1.7.0_75, x86_64:   "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home
    1.6.0_65-b14-466.1, x86_64: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
    1.6.0_65-b14-466.1, i386:   "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

我想使用1.8。和mvn来识别它。

如果我运行这个:

ls -l `which java`
lrwxr-xr-x  1 root  wheel  74 May 24 22:46 /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java

然后如果我跑了:

/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java -version
java version "1.8.0_40"
Java(TM) SE Runtime Environment (build 1.8.0_40-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode)

我确实注意到这个符号链接的顺序不对:

cd /System/Library/Frameworks/JavaVM.framework/Versions
ls -l
total 64
lrwxr-xr-x  1 root  wheel   10 May 24 22:46 1.4 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 May 24 22:46 1.4.2 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 May 24 22:46 1.5 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 May 24 22:46 1.5.0 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 May 24 22:46 1.6 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 May 24 22:46 1.6.0 -> CurrentJDK
drwxr-xr-x  7 root  wheel  238 May 24 22:46 A
lrwxr-xr-x  1 root  wheel    1 May 24 22:46 Current -> A
lrwxr-xr-x  1 root  wheel   59 May 24 22:46 CurrentJDK -> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents

“当前JDK”实际上在任何地方都使用吗?如何更新链接?

我不明白发生了什么……一切似乎都指向了新的Java,mvn在哪里以及如何阅读Java 6(不支持的major.minor版本51.0)?

共有1个答案

满自明
2023-03-14

/System/Library/Frameworks/javavm . framework/Versions中的符号链接指向旧的JDK。

运行这些命令修复了它:

cd /System/Library/Frameworks/JavaVM.framework/Versions 
sudo rm CurrentJDK
sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/ CurrentJDK
 类似资料:
  • 我一直在研究人脸识别考勤管理系统。我从头开始构建了管道,但最终,脚本在10个类中识别出了错误的面孔。我已经使用Tensorflow和Python实现了以下管道。 > 使用dlib的shape predictor捕捉图像、调整大小、对齐它们,并将它们存储在命名文件夹中,以便在执行识别时进行比较 将图像Pickle成文件,以便以后反序列化。 利用OpenCV实现MTCNN算法检测网络摄像头捕获的帧中的

  • 路径:%JAVA_HOME\bin;%M2_HOME\bin;... java版本工作良好 java版本“1.8.0_45”java(TM)SE运行时环境(build1.8.0_45-B15)java HotSpot(TM)64位服务器VM(build25.45-B02,混合模式) “Mvn'n'est pas reconnu en tant que commande interne ou ext

  • Technik NN Technik O kann VMFIN kann O 耶多克ADV耶多克O 我使用的是以下德国模型:Stanford-German-Corenlp-2018-02-27-models.jar 根据自述文件,coreNLP工具的版本是“2018-02-27 3.9.1” java版本“10.0.1”2018-04-17

  • 我有一个大学项目,我必须编写一个Java应用程序。因为我们学习了使用Netbeans作为IDE的java,所以我决定使用这个IDE编写应用程序。 我在以前的电脑上从未遇到过这个错误。现在,当我在编写函数或任何其他块后打开“{}”时,按“return”后的行没有缩进,按“tab”也没有任何作用。 也许有人知道问题出在哪里? 谢谢:D

  • 我正在尝试使用 curl 在 pinterest.com 上执行登录。我得到了以下请求-响应-流: GET请求登录表单并清除隐藏字段(csrftoken) POST请求登录凭据(邮件和密码)和scraped csrftoken 接收会话Cookie以进行登录 使用Curl,我可以看到以下发送和接收的标头: 因此,在第1步之后,设置了两个cookie csrfToken和_pinterest_ses

  • 问题内容: 键入命令时出现以下错误: 无法将“ mvn”识别为内部或外部命令,可操作程序或批处理文件。 我也遵循了这个步骤,但是仍然无法完成工作。 当我键入此命令时,我得到的路径打印为 当我键入“ echo%M2%”时,我的路径打印为 环境 : 问题答案: 确保在路径中设置了maven bin目录,并设置了JAVA_HOME属性