官网下载maven上传至服务器,解压后,执行 mvn -v报错,错误内容如下:
The JAVA_HOME environment variable is not defined correctly
This environment variable is needed to run this program
NB: JAVA_HOME should point to a JDK not a JRE
百度查找了一圈,都没有去实质性的解决该问题,故有此文.
检查 apache-maven-3.x.x/bin下的mvn脚本
发现如果有定义$JAVA_HOME的话,则将变量JAVACMD定义为$JAVA_HOME/bin/java
而我安装的是openJDk1.8.0,错误的将JAVA_HOME设置成/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64
通过tree命令(自行安装),可以看到openjdk目录下只有jre目录
故不能简单的编辑/etc/profile文件
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64
解决方案:
1.不设置JAVA_HOME
2.将JRE_HOME设置成 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64/jre
建议:还是老老实实的装oracle的jdk8,不要装openJDK1.8
同理,如若windows下执行mvn -v也报此错,请检查mvn.cmd里JAVA环境变量设置.