我已经在 ubuntu 上安装了 java jdk 9 和 java jre 9,并将两者的路径设置为/etc/environment
as,/usr/local/jdk-9.0.4:/usr/local/jre-9.0.4/bin
然后我测试了javac -version
哪个打印 jdk9,但是当我运行时java -version
它打印
openjdk version "1.8.0_151"
OpenJDK Runtime Environment (build 1.8.0_151-8u151-b12-0ubuntu0.17.10.2-b12)
OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)
我不知道openjdk安装在哪里。我认为它是和MAVEN一起安装的。
以下是/etc/environment
内容
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/jdk-9.0.4/bin"
JAVA_HOME="/usr/local/jdk-9.0.4:/usr/local/jre-9.0.4/bin"
答案1
当您安装 maven 时,openjdk-8-jre-headless 会作为依赖项安装。Java 运行时环境 (jre) 确实包含java
二进制文件,但不包括 Java 编译器 ( javac
)。java
二进制文件(或者更具体地说,指向它的链接)现在位于 中/usr/bin
。由于PATH
-variable 是从左到右处理的,因此执行java
会执行/usr/bin/java
,而javac
执行 是/usr/local/jdk-9.0.4/bin/javac
因为在 中包含的任何其他文件夹中都找不到它PATH
。您可以使用命令自行检查which
,例如which java
或which javac
。
openjdk8 jre 很可能安装在/usr/lib/jvm/java-8...
并且它的二进制文件/usr/bin
由Debian 替代系统。