Java 8 与 Java 1.8 安装(目录名)

ank*_*981 7 java openjdk software-installation

不知何故,我在我的 Ubuntu 16.04 系统上得到了两个 OpenJdk 8 目录:

  1. /usr/lib/jvm/java-8-openjdk-amd64
  2. /usr/lib/jvm/java-1.8.0-openjdk-amd64

问题是第一个目录似乎已损坏。如果我/usr/lib/jvm/java-8-openjdk-amd64/bin/java HelloWorld在现有HelloWorld.class文件上做,我什么也得不到,但做/usr/lib/jvm/java-1.8.0-openjdk-amd64/bin/java HelloWorld会产生预期的输出。

现在看看这个:

core$ ll /etc/alternatives/jav*
lrwxrwxrwx 1 root root 42 Nov  7 11:02 /etc/alternatives/java -> /usr/lib/jvm/java-8-openjdk-amd64/bin/java*
lrwxrwxrwx 1 root root 52 Nov  2 19:32 /etc/alternatives/java.1.gz -> /usr/lib/jvm/java-9-openjdk-amd64/man/man1/java.1.gz
lrwxrwxrwx 1 root root 43 Nov  2 19:35 /etc/alternatives/javac -> /usr/lib/jvm/java-8-openjdk-amd64/bin/javac*
lrwxrwxrwx 1 root root 53 Nov  2 19:35 /etc/alternatives/javac.1.gz -> /usr/lib/jvm/java-8-openjdk-amd64/man/man1/javac.1.gz
lrwxrwxrwx 1 root root 45 Nov  2 19:35 /etc/alternatives/javadoc -> /usr/lib/jvm/java-8-openjdk-amd64/bin/javadoc*
lrwxrwxrwx 1 root root 55 Nov  2 19:35 /etc/alternatives/javadoc.1.gz -> /usr/lib/jvm/java-8-openjdk-amd64/man/man1/javadoc.1.gz
lrwxrwxrwx 1 root root 43 Nov  2 19:35 /etc/alternatives/javah -> /usr/lib/jvm/java-8-openjdk-amd64/bin/javah*
lrwxrwxrwx 1 root root 53 Nov  2 19:35 /etc/alternatives/javah.1.gz -> /usr/lib/jvm/java-8-openjdk-amd64/man/man1/javah.1.gz
lrwxrwxrwx 1 root root 43 Nov  2 19:35 /etc/alternatives/javap -> /usr/lib/jvm/java-8-openjdk-amd64/bin/javap*
lrwxrwxrwx 1 root root 53 Nov  2 19:35 /etc/alternatives/javap.1.gz -> /usr/lib/jvm/java-8-openjdk-amd64/man/man1/javap.1.gz
Run Code Online (Sandbox Code Playgroud)

所有这些都指向8目录,而不是1.8,这会导致运行程序时出现问题。我的问题是:这个烂摊子是怎么来的,解决这个问题的最好方法是什么?我想删除其他所有内容并将 OpenJDK 8 作为我的默认 JDK。

ank*_*981 0

好吧,我的问题是我在不知不觉中也安装了无头 openjdk,因此最终安装了两次。我最终从系统中删除了所有 jdks 并安装了 JDK 9(我可能会补充说,这不是一个无故障的安装!),现在一切似乎都已解决!