javac 異常,Java 8

javac 異常,Java 8

上週我使用以下命令安裝了 Oracle Java 8:

sudo apt-add-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

一切似乎都很好(我繼續正常使用我的系統,不能確切地說我這週做了什麼)。現在,當我執行時java -version我得到

java version "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)

但是,現在當我執行時javac -version我得到

/usr/lib/jvm/java-8-oracle/jre/lib/rt.jar: invalid LOC header (bad signature)
Exception in thread "main" java.lang.NoClassDefFoundError: javax/annotation/processing/ProcessingEnvironment
    at com.sun.tools.javac.Main.compile(Main.java:54)
    at com.sun.tools.javac.Main.main(Main.java:42)
Caused by: java.lang.ClassNotFoundException: javax.annotation.processing.ProcessingEnvironment
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 2 more

我猜有一些問題rt.jar?繼續這裡的最佳方法是什麼?我應該嘗試卸載/重新安裝 Java 8 嗎?如果是這樣,最簡單的方法是什麼?還是我缺少一些 Java 元件?我想在 Eclipse 中開發 Java 程序,我的理解oracle-java8-installer可以為我提供所需的一切。

有人能告訴我「Oracle Java 8」包含什麼嗎?我知道我可以安裝很多 Java 東西,例如 JDK、JVM...這些東西各自的用途是什麼,當我安裝 Java 8 時我是否獲得了所有這些東西?

答案1

rt.jar腐敗的。

刪除可能損壞的 Java 安裝程式:

sudo rm /var/cache/oracle-jdk8-installer/*.tar.gz

然後重新安裝:

sudo apt-get install --reinstall oracle-java8-installer

相關內容