电话
400 9058 355
正确设置JAVA_HOME需先确认JDK根目录:Windows用where javac取上两级路径,macOS/Linux用which javac结合readlink定位;环境变量值须为纯路径、不带引号,且Path需前置%JAVA_HOME%\bin;shell配置依$SHELL选择~/.zshrc或~/.bashrc并source生效;IDE及构建工具需单独配置JAVA_HOME,避免继承失效。
很多人输完命令就去配环境变量,结果JAVA_HOME指向了JRE目录、或者指向了bin子目录——这两类路径都会导致javac不可用或构建工具报错。
正确做法是先确认JDK根目录:
where javac,取输出路径的上两级(比如输出C:\Program Files\Java\jdk-17.0.1\bin\javac.exe,则JAVA_HOME应为C:\Program Files\Java\jdk-17.0.1)which javac,再执行 readlink -f $(which javac) | xargs dirname | xargs dirname
注意:不要用java -version查路径,它只显示JRE信息,和编译无关。
Windows用户常在“系统属性→高级→环境变量”里配错,核心问题是没同步更新Path,或用了错误的变量引用语法。
JAVA_HOME值必须是纯路径,不带引号(即使含空格),例如:C:\Program Files\Java\jdk-17.0.1,不是"C:\Program Files\Java\jdk-17.0.1"
%JAVA_HOME%\bin加到Path变量开头(不是末尾),否则可能被旧JDK路径覆盖echo %JAVA_HOME% 和 javac -version 都得成功macOS Catalina以后默认用zsh,但很多教程仍教你在~/.bash_profile里写,结果重启终端不生效。
echo $SHELL 确认当前shell,再编辑对应文件:~/.zshrc(zsh)或~/.bashrc(bash)export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.0.1.jdk/Contents/Home(macOS示例)source ~/.zshrc,否则$JAVA_HOME仍是空echo $JAVA_HOME和javac -version,不要只信java -version
IntelliJ、VS Code、Maven等工具可能不继承你终端里的环境变量,尤其图形界面启动时。
JAVA_HOME变量.vscode/settings.json中加"java.configuration.runtimes"显式指定JDK路径mvn -v输出的Java版本,若不对,优先看MAVEN_OPTS是否硬编码了-Djava.home=...
gradle -version 显示的JVM路径才是它真正用的,和JAVA_HOME未必一致最隐蔽的问题是:某些CI脚本或Docker容器里,JAVA_HOME被覆盖成OpenJDK路径,而本地开发用的是Oracle JDK——这种混合环境最容易在打包阶段突然失败。
邮箱:8955556@qq.com
Q Q:8955556
本文详解如何将Go官方present工具(用于生成HTML5...
PySNMP在不同版本中对SNMP错误状态(errorSta...
time.Sleep仅阻塞当前goroutine,其他gor...
PHPfopen()创建含特殊符号的文件名失败主因是操作系统...
WooCommerce中通过代码为分组产品动态聚合子商品的属...
io.ReadFull返回io.ErrUnexpectedE...
本文详解Yii2中控制器向视图传递ActiveRecord数...
本文详解为何通过wp_set_object_terms()为...
Pytest中使用@mock.patch类装饰器会导致补丁泄...
带缓冲的channel是并发安全的FIFO队列;make(c...