1

когда я java -version я все еще получаю версию раннего доступа, а не стабильную JDK 7u10. пожалуйста, как это исправить? Я работаю на Mac OS X Mountain Lion.

ls /System/Library/Frameworks/JavaVM.framework/Versions

  • 1.5.0
  • 1,6
  • 1.6.0
  • А <-?
  • Ток <-?
  • CurrentJDK <-?

Что за ? стоит, пожалуйста?

/usr/libexec/java_home -V

Matching Java Virtual Machines (3):
    1.7.0_10, x86_64:   "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_10.jdk/Contents/Home
    1.6.0_37-b06-434, x86_64:   "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
    1.6.0_37-b06-434, i386: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

/Library/Java/JavaVirtualMachines/jdk1.7.0_10.jdk/Contents/Home

Проблема в java -version > java version "1.7.0_10-ea" EA !

Хуже всего то, что /Library/Java/JavaVirtualMachines/jdk1.7.0_10.jdk/Contents/Home/bin/java -version показывают мне советник.

1 ответ1

1

1.7 JDK не входят в /System/Library/Frameworks , они идут в /Library/Java/JavaVirtualMachines . Когда вы запускаете /usr/bin/java он выбирает соответствующую установку Java для использования

  • Если у вас установлена переменная окружения JAVA_HOME , она будет использовать эту версию
  • в противном случае он выберет "лучший" установленный JDK из доступных в /Library/Java/JavaVirtualMachines и /System/Library/Java/JavaVirtualMachines , вы можете запустить /usr/libexec/java_home чтобы увидеть, какой из них система считает "Лучший".

Конечно, если вы вручную добавили /Library/Java/JavaVirtualMachines/<something>/Contents/Home/bin в PATH перед /usr/bin тогда java будет означать именно эту версию, а не ту, которая выбрана системой. Вы можете проверить это, запустив which java .

Чтобы усложнить ситуацию, есть еще одна копия JRE в /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home , которая используется для плагинов браузера и для пакетов .app стиле 1.7, которые не встраивают их собственный JRE.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .