CentOS环境下Jenkins配置JAVA_HOME报错求助
哦,我一眼就看出问题所在啦!你填的路径是Java可执行文件的具体路径,但Jenkins在「全局工具配置」的JDK项里,要求填写的是JDK的根目录,不是java命令的路径。
为什么会报错?
你输入的/usr/lib/jvm/jre-1.8.0-openjdk.x86_64/bin/java是一个可执行文件,而不是目录——Jenkins需要的是JDK的根目录路径,所以才会提示“不是目录”。
解决步骤
确认JDK根目录:
通常来说,你的JRE根目录就是/usr/lib/jvm/jre-1.8.0-openjdk.x86_64,但如果是完整JDK的话,路径应该是类似/usr/lib/jvm/java-1.8.0-openjdk.x86_64(注意开头是java而非jre,Maven项目更推荐使用完整JDK,因为部分构建步骤需要JDK中的编译工具)。
你可以在Jenkins主节点的终端执行这条命令验证:readlink -f $(which java)输出的路径会指向
java可执行文件,比如你现在的情况输出是/usr/lib/jvm/jre-1.8.0-openjdk.x86_64/bin/java,那么往上退两级目录(去掉/bin/java)就是根目录。修正Jenkins配置:
回到Jenkins的「全局工具配置」→「JDK」,把路径改成刚才确认的根目录(比如/usr/lib/jvm/java-1.8.0-openjdk.x86_64),保存配置后再尝试运行Maven项目,报错应该就消失了。
额外提示
如果你的系统目前只有JRE,建议安装完整的OpenJDK 8包,因为Maven构建过程中可能需要JDK提供的javac等编译工具,仅用JRE可能会导致后续构建失败。
内容的提问来源于stack exchange,提问作者Jothi Kannan

