我真的试图避免这个问题,因为已经有很多这个问题了。但是我可能无法修复将我的终端设置为正确的JAVA_HOME。
首先是以下输出:
Java的首页
echo $JAVA_HOME
/usr/lib/jvm/java-7-oracle
Java的版本:
java -version
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
Maven的版本:
mvn -version
Error: JAVA_HOME is not defined correctly.
We cannot execute /usr/lib/jvm/java-7-oracle/bin/java
已安装的Java-版本:
/usr/lib/jvm$ ls -l
total 8
lrwxrwxrwx 1 root root 24 Mär 22 2014 default-java -> java-1.7.0-openjdk-amd64
lrwxrwxrwx 1 root root 20 Nov 19 2015 java-1.7.0-openjdk-amd64 -> java-7-openjdk-amd64
drwxr-xr-x 5 root root 4096 Jan 26 2016 java-7-openjdk-amd64
drwxr-xr-x 8 root root 4096 Mai 7 2016 java-8-oracle
我们可以看到默认的java版本设置为1.7。但是,用java --version显示的版本是1.8,而maven(以及其他应用程序)无法找到任何正确的版本。
我尝试了以下事项:
使用config alternative更改默认的java版本:
sudo update-alternatives --config java 替代java有两种选择(提供/ usr / bin / java)。
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/java-8-oracle/jre/bin/java 1075 auto mode
1 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 manual mode
2 /usr/lib/jvm/java-8-oracle/jre/bin/java 1075 manual mode
当我在终端中手动设置JAVA_HOME时,它会更改终端会话的变量但仍然不起作用:
export JAVA_HOME=JAVA_HOME=/usr/lib/jvm/java-8-oracle
echo $JAVA_HOME
JAVA_HOME=/usr/lib/jvm/java-8-oracle
java -version
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
mvn -version
Error: JAVA_HOME is not defined correctly.
We cannot execute JAVA_HOME=/usr/lib/jvm/java-8-oracle/bin/java
如果有人可以为我带来一些亮点,那将是非常棒的。 我理解系统范围的变量是在/ etc / environment中设置的,对于bash,通常应该加载profile.d或者我只是在bashrc中设置它以便每次初始化终端时都会加载它?
亲切的问候
答案 0 :(得分:0)
您是否还将PATH变量设置为正确的java所需?我猜你的PATH和JAVA_HOME指向不同的JDK。这必须是java -version和echo $ JAVA_HOME的不同输出的原因。
你也在JAVA_HOME使用JRE吗?我认为它应该是JDK。