JAVA_HOME Ubuntu终端

时间:2016-11-07 11:30:30

标签: java bash ubuntu java-home

我真的试图避免这个问题,因为已经有很多这个问题了。但是我可能无法修复将我的终端设置为正确的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(以及其他应用程序)无法找到任何正确的版本。

我尝试了以下事项:

  • 在系统范围内的etc / environment中设置JAVA_HOME
  • 在profile.d(jvm和jdk)中设置JAVA_HOME
  • 在/ etc /
  • 中的自构造.bashrc文件中设置JAVA_HOME
  • 在一个自构造的.bashrc文件中设置JAVA_HOME USR-主目录
  • 在/ etc /
  • 中的dot.bashrc文件中设置JAVA_HOME
  • 使用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中设置它以便每次初始化终端时都会加载它?

亲切的问候

1 个答案:

答案 0 :(得分:0)

您是否还将PATH变量设置为正确的java所需?我猜你的PATH和JAVA_HOME指向不同的JDK。这必须是java -version和echo $ JAVA_HOME的不同输出的原因。

你也在JAVA_HOME使用JRE吗?我认为它应该是JDK。