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"에 무엇이 포함되어 있는지 말해 줄 수 있습니까? 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

관련 정보