Mac OS X 10.6.7 Путь Java Текущий JDK запутывает - программирование

Mac OS X 10.6.7 Путь Java Текущий JDK запутывает

У меня проблемы с пониманием (фактические пути против ссылок) для нескольких версий java на моем Mac OSX. Обычно в Windows, если у меня есть несколько версий, установленных на моей машине, я могу просто выбрать путь, из которого когда-либо была версия, которую я хочу, и использовать ее. Но в MAC OS X я утверждаю, что есть что-то, называемое ссылками, которые указывают на 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
4b9b3361

Ответ 1

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

Сопряженные ссылки, кстати, созданы командой ln -s из терминала.

Ответ 2

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

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

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

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

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

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

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

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

Ответ 3

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

$ 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)

Ответ 4

От Apple Technical Q & Вопросы Java:

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

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

Ответ 5

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

или экспортировать JAVA_HOME = $(/usr/libexec/java_home);

echo $JAVA_HOME