JDK-Version stimmt unter OSX nicht überein

398
Martin

Ich habe in Java auf OSX ohne Probleme für ein paar Probleme entwickelt. Gestern bekam ich seltsame Compiler-Abstü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) 

Es sieht also alles super aus, aber dann:

$ javac -version javac 1.8.0_20 

Hat jemand Vorschläge, was dazu führen könnte, dass es die falsche Version findet? Ich habe versucht, alle JVMs zu entfernen, neu zu installieren und neu zu starten und so weiter.

Bearbeiten

Selbst wenn Sie javac vom Ziel des Symlinks aus ausführen, wird die falsche Version angezeigt. Ich habe auch bestätigt, dass die md5-Summe von /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/bin/javac der einer fehlerhaften Installation entspricht.

0
Haben Sie nicht "javac" in der Ausgabe des Befehls "hash"? techraf vor 7 Jahren 0
Ich weiß nicht, ob ich deinen Kommentar verstehe. hash sagt `javac = / usr / bin / javac`. Aber selbst wenn Sie javac vom symlink target ausführen, wird die falsche Version angezeigt. Martin vor 7 Jahren 0
"which" berücksichtigt nicht das bash-Befehls-Hashing. Es ist also kein guter Weg, um zu testen. Wie auch immer, in Ihrem Fall scheint es, als würden Sie dieselbe ausführbare Datei ausführen, daher ist dies nicht der Fall. techraf vor 7 Jahren 0

0 Antworten auf die Frage