Несоответствие версии JDK на OSX

Несоответствие версии JDK на OSX

Я разрабатывал на Java на OSX без проблем в течение нескольких выпусков. Вчера я начал получать странные сбои компилятора (NPEs глубоко в javac).

Я установил JDK 1.8.0_101, но javac сообщает о себе как о 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)

Итак, все выглядит замечательно, но затем:

$ javac -version
javac 1.8.0_20

Есть ли у кого-нибудь предложения о том, что может быть причиной выбора неправильной версии? Я пробовал удалять все JVM и переустанавливать, перезагружать и все такое.

Редактировать

Даже запуск javac из цели символической ссылки сообщает о неправильной версии. Я также подтвердил, что сумма md5 /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/bin/javac совпадает с суммой здоровой установки.

решение1

Перейти к cd /Library/Java/JavaVirtualMachines. Список всех файлов, использующих ls.

Должно быть две папки jdk1.8.0_101.jdkи jdk1.8.0_20.jdk. Введите sudo rm -rf jdk1.8.0_20.jdk.

Теперь проверьте java -version и javac -version, они должны быть одинаковыми.

Связанный контент