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.jdk
Geben 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.