
На прошлой неделе я установил 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? Я хочу разрабатывать программы Java в Eclipse, и я понял, что это 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