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

344
Martin

Я занимался разработкой на Java для OSX без каких-либо проблем. Вчера я начал получать странные сбои компилятора (NPE глубоко в 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 совпадает с правильной установкой.

0
У вас нет `javac` в выходных данных команды` hash`? techraf 7 лет назад 0
Not sure I understand your comment. hash says `javac=/usr/bin/javac`. But even running javac from the symlink target reports the wrong version. Martin 7 лет назад 0
`which` не учитывает хэширование команды bash, поэтому это не хороший способ проверки. В любом случае, в вашем случае кажется, что вы используете один и тот же исполняемый файл, так что это не так. techraf 7 лет назад 0

0 ответов на вопрос