上周我使用以下命令安装了 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