В чем разница между java -version
и java -fullversion
?java -version vs java -fullversion
Эти два устройства не отображаются на моей машине.
C:\Users\kmort>java -fullversion
java full version "1.8.0_20-b26"
C:\Users\kmort>java -version
java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b18)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)
This link (at the bottom), кажется, указывает, что fullversion
просто включает номер сборки. Если это правда, что мне в итоге дать другой ответ, когда я запускаю два?
Отметьте, что this documentation пренебрегает ссылкой на fullversion
.
Я бегу на 64-битной Windows 7. Если это помогает, вот скриншот установок JDK и JRE, которые у меня есть на моей машине.
Update
Когда я бегу where
команду Window, я получаю следующее:
C:\Users\kmort>where java
C:\Windows\System32\java.exe
C:\ProgramData\Oracle\Java\javapath\java.exe
C:\Program Files\Java\jdk1.8.0_25\bin\java.exe
Проблема заключается с java.exe
расположенной в System32
. Если я переименую это в нечто другое, все будет работать так, как ожидалось. И один Oracle - это просто символические ссылки на последний.
Итак, вопрос в том, почему это происходит с java.exe
в моей папке System32
? (Мой эндшпиль будет удалить java.exe
из папки System32
, но я хотел бы понять, что происходит в первую очередь.)
Update 2
Использование Process Monitor, можно видеть, что, когда я бегу либо команда на нарушение C:\Windows\System32\java.exe
это исполняемый файл, который выполняется (см. снимок экрана, вызывающий LoadImage
на C:\Windows\System32\java.exe
). Есть также несколько ссылок на C:\Windows\SysWOW64\java.exe
в обоих из них. Я не знаю, почему.
Также обратите внимание, что кажется, мой реестр является правильным. Текущая версия - 1,8.
Еще одно примечание: отметка времени на C:\Windows\System32\java.exe
в тот день, когда я знаю, что я установил JRE.
Мои первоначальные мысли состоят в том, что эта установка Java неверна. Моя вторая, хотя, возможно, что java.exe достаточно умен, чтобы просто проверить реестр Windows вместо «самого себя», и он сообщает, что есть. Проверьте свои ключи JavaSoft, чтобы узнать, какие установленные 64-разрядные JRE находятся в этой системе. И я просто посмотрел на ваше сообщение более внимательно и вижу, что у вас заканчивается System32, хотя он сообщает 64-битную виртуальную машину. Убедитесь, что это тот, который вы не используете. – jdv
@jdv Я просмотрел реестр и вставил снимок экрана выше. Мне кажется, все в порядке. Я что-то упускаю? И System32 - это тот, который он запускает. Я собираюсь удалить его, когда я понимаю, почему номера версий, которые этот твари представляет, различны. – kmort
спасибо за это. Это было наверняка истинное предположение о путях, но, по крайней мере, мы это исключили. Если вы получаете те же результаты, что и java с полным именем пути для обоих вызовов, у меня нет разумных объяснений. – jdv