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

すべては順調のようでした(私はシステムを通常通り使い続けましたが、1週間で何をしたか正確にはわかりません)。今、実行すると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」には何が含まれているのか教えていただけますか? JDK、JVM など、インストールできる Java のものがたくさんあることは知っていますが、これらはそれぞれ何に使用されますか? また、Java 8 をインストールすると、これらすべてが取得されますか?

答え1

rt.jar破損しています。

破損している可能性のある Java インストーラを削除します。

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

次に再インストールします:

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

関連情報