Nichtübereinstimmung der JDK-Version unter OSX

Nichtübereinstimmung der JDK-Version unter OSX

Ich habe einige Zeit lang ohne Probleme Java auf OSX entwickelt. Gestern begannen seltsame Compilerabstürze (NPEs tief in javac).

Ich habe JDK 1.8.0_101 installiert, aber javac meldet sich selbst als 1.8.0_20.

$ which javac
/usr/bin/javac

$ ls -l /usr/bin/javac
lrwxr-xr-x  1 root  wheel  74 20 Sep 15:16 /usr/bin/javac -> /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/bin/javac

$ /usr/libexec/java_home 1.8
/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home

$ echo $JAVA_HOME
Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home

$ java -version
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)

Also sieht alles super aus, aber dann:

$ javac -version
javac 1.8.0_20

Hat jemand Vorschläge, was die Ursache für die falsche Version sein könnte? Ich habe versucht, alle JVMs zu entfernen, neu zu installieren, neu zu starten und all das.

Bearbeiten

Sogar wenn javac vom Ziel des Symlinks ausgeführt wird, wird die falsche Version gemeldet. Ich habe auch bestätigt, dass die MD5-Summe von /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/bin/javac mit der einer fehlerfreien Installation übereinstimmt.

Antwort1

Gehe zu cd /Library/Java/JavaVirtualMachines. Liste alle Dateien auf, die verwenden ls.

Es sollten zwei Ordner vorhanden sein jdk1.8.0_101.jdk. jdk1.8.0_20.jdkGeben Sie ein sudo rm -rf jdk1.8.0_20.jdk.

Überprüfen Sie nun die Java-Version und die Javac-Version. Sie sollten identisch sein.

verwandte Informationen