Mac OS X 10.6.7 Java Path Текущий JDK сбивает с толку

У меня проблемы с пониманием (фактические пути и ссылки) для нескольких версий Java на моем Mac OSX. Обычно в Windows, если на моей машине установлено несколько версий, я могу просто выбрать путь к любой версии, которую я хочу, и использовать ее. Но в MAC OS X I я предполагаю, что есть нечто, называемое ссылками, которое указывает на CurrentJDK, и если я хочу использовать другую версию, мне нужно будет изменить ссылку на CurrentJdk, верно? Но что меня смущает, так это то, что, как вы можете видеть ниже, все мои версии указывают на один и тот же CurrentJDK, что означает, что все версии указывают на текущую версию? Я ожидал, что только один из них будет указывать на CurrentJDK, и я мог бы просто изменить его на тот, который мне нужен, что здесь не так. Все, что мне нужно знать, это как найти путь к папке bin(Commands) для каждой версии, чтобы я мог просто использовать его для указания на CurrentJDK? Также подскажите, как изменить ссылку на CurrentJDK.

$ java -version

java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07-334-10M3326)
Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02-334, mixed mode)

$ pwd

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


$ ls -l

lrwxr-xr-x   1 root  wheel    5 Mar 20 11:12 1.3 -> 1.3.1
drwxr-xr-x   3 root  wheel  102 Dec  2  2009 1.3.1
lrwxr-xr-x   1 root  wheel   10 Mar 20 11:12 1.4 -> CurrentJDK
lrwxr-xr-x   1 root  wheel   10 Mar 20 11:12 1.4.2 -> CurrentJDK
lrwxr-xr-x   1 root  wheel   10 Mar 20 11:12 1.5 -> CurrentJDK
lrwxr-xr-x   1 root  wheel   10 Mar 20 11:12 1.5.0 -> CurrentJDK
lrwxr-xr-x   1 root  wheel   10 Mar 20 11:12 1.6 -> CurrentJDK
lrwxr-xr-x   1 root  wheel   10 Mar 20 11:12 1.6.0 -> CurrentJDK
drwxr-xr-x  10 root  wheel  340 Mar 20 11:13 A
lrwxr-xr-x   1 root  wheel    1 Mar 20 11:12 Current -> A
lrwxr-xr-x   1 root  wheel   59 Mar 20 11:12 CurrentJDK -> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents

6 ответов

Решение

Скорее всего, у вас установлен только один jdk, поэтому все программные ссылки указывают на один и тот же jdk. Однако если у вас установлено несколько jdks, вам нужно будет выбрать, какой из них использовать с приложением "Java Preferences" в вашем /Application/Utilities.

Мягкие ссылки, кстати, создаются с помощью ln -s Команда из Терминала.

Для разных типов JDK или установок у вас будут разные пути.

В Mac OS X Mavericks я нашел следующий путь:

1) Встроенный JRE по умолчанию:

 /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home

2) JDK, загруженные с Apple:

 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/

3) JDK, загруженные из Oracle:

/Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Home

Просто запустите следующие команды:

$ brew update
$ brew install jenv
$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(jenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile

$ jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/
  oracle64-1.8.0.45 added
  1.8.0.45 added
  1.8 added

$ jenv add /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home
  oracle64-1.7.0.79 added
  1.7.0.79 added
  1.7 added

$ jenv versions
* system (set by /Users/wanluwang/.jenv/version)
  1.7
  1.7.0.79
  1.8
  1.8.0.45
  oracle64-1.7.0.79
  oracle64-1.8.0.45

$ java -version
  java version "1.8.0_45"
  Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
  Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

$ jenv global oracle64-1.7.0.79

$ java -version
  java version "1.7.0_79"
  Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
  Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

Установите $JAVA_HOME=$(/usr/libexec/java_home) в вашем.bash_profile

или экспортируйте JAVA_HOME = $ (/ usr / libexec / java_home);

echo $ JAVA_HOME

От Apple Технические вопросы и ответы по Java:

Пользовательские настройки

В Mac OS X среда выполнения Java предоставляет API java.util.prefs, который поддерживается стандартным API предпочтений Mac OS X и каталогами. Простое использование этого чистого Java API считывает и сохраняет настройки вашего приложения в ~/Library/Preferences в файле списка свойств Mac OS X. Для приложений, которые уже могут иметь свой собственный формат настроек, эти настройки также должны храниться в каталоге ~/Library/Preferences. В этот каталог можно попасть из кода Java, создав файл с путем System.getProperty("user.home") + "/Library/Preferences/" + "com.example.your.Application". Приложение, которое должно иметь глобальные настройки для всех пользователей, может вместо этого находиться в / Library / Preferences, однако этот каталог недоступен для записи пользователям, не имеющим прав администратора.

На Mac VenturaJDK загружен с Oracle.

      /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
Другие вопросы по тегам