Mac环境构建Spark执行mvn命令时出现javac路径不存在错误
Mac系统构建Spark时Java Home配置错误的解决办法
错误信息
[WARNING] javac exited with exit code -1
[ERROR] ## Exception when compiling 10 sources to /Users/johnding/spark/common/tags/target/scala-2.12/classes
java.io.IOException: Cannot run program "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/javac" (in directory "/Users/johnding/spark"): error=2, No such file or directory
问题原因
错误里的路径/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/javac是旧版Java插件的无效路径,说明JAVA_HOME环境变量没指向有效的JDK安装目录。
解决步骤
- 查看系统已安装的JDK:
执行命令/usr/libexec/java_home -V,输出会列出所有可用JDK的版本和对应路径,示例输出:Matching Java Virtual Machines (2): 1.8.0_301, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_301.jdk/Contents/Home 11.0.12, x86_64: "OpenJDK 11" /Library/Java/JavaVirtualMachines/openjdk-11.jdk/Contents/Home - 临时配置JAVA_HOME(当前终端会话生效):
选好需要的JDK路径,执行export命令,比如针对JDK8:export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_301.jdk/Contents/Home - 验证配置有效性:
执行echo $JAVA_HOME确认路径正确,再执行javac -version,能正常输出版本信息就说明配置成功。 - 重新执行Spark构建命令:
./build/mvn -DskipTests clean package
永久配置JAVA_HOME
如果要每次终端启动都自动生效,根据你的shell类型配置:
- zsh(Mac默认shell):编辑
~/.zshrc文件,添加上述export命令,保存后执行source ~/.zshrc生效。 - bash:编辑
~/.bash_profile或~/.bashrc文件,添加export命令,保存后执行source ~/.bash_profile(对应编辑的文件)生效。
内容的提问来源于stack exchange,提问作者user20816137
相关产品推荐
相关产品推荐

