gpt4 book ai didi

java - Mac os 大苏尔 |此环境中不提供编译器。也许您在 JRE 而不是 JDK 上运行?

转载 作者:行者123 更新时间:2023-12-04 00:51:39 24 4
gpt4 key购买 nike

我在屏幕截图上收到此错误,并且我看过其他有关它的帖子,但是,提供的修复主要针对 Windows,因此无论我尝试过什么,都无法解决我的 Mac 上的问题。
目前,当我运行/usr/libexec/java_home 时,它​​指向我这里:
/库/互联网插件/JavaAppletPlugin.plugin/Contents/Home
所以当运行一个 Maven 项目时,它会通过这样的消息:
此环境中不提供编译器。也许您在 JRE 而不是 JDK 上运行?
所以,我想知道 JAVA_HOME 的位置是否不正确,如果是,我该如何解决?
对不起,如果问一些明显的问题,但我是新手。
我将衷心感谢您的帮助。
enter image description here

最佳答案

我遇到了和你一样的问题。
此解决方案 ( Build failure run "mvn clean install". I just upgraded Big Sur ) 是删除无用的 jre。
我的是给 mvn shell 一个正确的 java_home。
解决方案 - 编辑 mvn bash
第 1 步:检查如何通过 /usr/libexec/java_home 过滤目标 java
当我运行命令 /usr/libexec/java_home -V我可以看到 2 个虚拟机

MacBook-Pro:bin charles$ /usr/libexec/java_home -V
Matching Java Virtual Machines (2):
1.8.251.08 (x86_64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
1.8.0_251 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_251.jdk/Contents/Home
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
我的 /usr/libexec/java_home 的默认返回值是我的 jre 路径,例如
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
但是我可以改变返回jdk路径
/Library/Java/JavaVirtualMachines/jdk1.8.0_251.jdk/Contents/Home
如果我运行命令 /usr/libexec/java_home -v1.8.0第 2 步:更新 mvn shell
在 mvn shell 中找到以下几行

if [ -z "$JAVA_HOME" ] && [ -x "/usr/libexec/java_home" ]; then
#
# Apple JDKs
#
export JAVA_HOME=`/usr/libexec/java_home`
fi
因为我可以使用 usr/libexec/java_home -v1.8.0 来确保系统使用 jdk,
我将我的 shell 更新为
if [ -z "$JAVA_HOME" ] && [ -x "/usr/libexec/java_home" ]; then
#
# Apple JDKs
#
export JAVA_HOME=`/usr/libexec/java_home -v1.8.0`
fi
然后,它起作用了。
如何检查差异 mvn -version在我更新我的 mvn 之前,我会看到
MacBook-Pro:~ charles$ mvn -version
Apache Maven ........
Maven home: ........
Java version: 1.8.0_251, vendor: Oracle Corporation
Java home: /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
Default locale: zh_TW, platform encoding: UTF-8
OS name: "mac os x", version: "10.16", arch: "x86_64", family: "mac"
更新我的 mvn 后,我可以看到结果
MacBook-Pro:~ charles$ mvn -version
Apache Maven ........
Maven home: .......
Java version: 1.8.0_251, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_251.jdk/Contents/Home/jre
Default locale: zh_TW, platform encoding: UTF-8
OS name: "mac os x", version: "10.16", arch: "x86_64", family: "mac"
虽然java home显示为jre路径,但jre是jdk里面的子文件夹。没关系。

关于java - Mac os 大苏尔 |此环境中不提供编译器。也许您在 JRE 而不是 JDK 上运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65904404/

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