Question exception javac, Java 8


La semaine dernière, j'ai installé Oracle Java 8 avec les commandes suivantes:

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

Tout semblait aller bien (j'ai continué à utiliser mon système normalement, je ne peux pas dire exactement ce que j'ai fait au cours de la semaine). Maintenant, quand j'exécute java -version Je reçois

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)

Cependant, maintenant, quand j'exécute javac -version Je reçois

/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

Je suppose qu'il y a un problème avec rt.jar? Quelle est la meilleure façon de procéder ici? Dois-je essayer de désinstaller / réinstaller Java 8? Si oui, quelle est la façon la plus simple de le faire? Ou y a-t-il un composant Java qui me manque? Je veux développer des programmes Java dans Eclipse, et je pensais que oracle-java8-installer me donnerait tout ce dont j'ai besoin.

Quelqu'un peut-il me dire ce qui est inclus dans "Oracle Java 8"? Je sais qu'il y a beaucoup de choses Java que je pourrais installer, par exemple le JDK, JVM ... à quoi servent chacun de ces éléments et quand j'installe Java 8?


0
2018-01-09 07:18


origine


rt.jar est probablement corrompu. Vous pouvez essayer de réinstaller avec sudo rm /var/cache/oracle-jdk8-installer/*.tar.gz; sudo apt-get install --reinstall oracle-java8-installer - Chai T. Rex


Réponses:


rt.jar est corrompu.

Supprimez le programme d'installation Java éventuellement corrompu:

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

Puis réinstallez:

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

2
2018-01-09 14:59



Une idée de comment cela aurait pu être corrompu? - Adam
Probablement un problème lors du téléchargement.
Ça marchait avant. La seule chose à laquelle je peux penser est que j'ai installé et enlevé Eclipse plusieurs fois. - Adam
Si c'était celui de leur site Web, tel que recommandé (la version repo d'Ubuntu est assez ancienne), cela pourrait arriver. Je ne l'ai pas vu arriver avant cependant.