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

相关内容