Установка Java OpenJDK с HomeBrew: почему одни и те же версии java находятся в разных местах? - PullRequest
0 голосов
/ 18 апреля 2020

После сообщений здесь и здесь мне нужно было установить две разные версии Java / OpenJDK

brew install java
brew cask install java

теперь у меня есть openjdk 13.0.2

openjdk 13.0.2 2020-01-14
OpenJDK Runtime Environment (build 13.0.2+8)
OpenJDK 64-Bit Server VM (build 13.0.2+8, mixed mode, sharing)

в двух разных местах

  • /usr/local/opt/openjdk/bin
  • /usr/local/opt/openjdk/libexec/openjdk.jdk/Contents/Home/bin/

и openjdk 14

openjdk 14 2020-03-17
OpenJDK Runtime Environment (build 14+36-1461)
OpenJDK 64-Bit Server VM (build 14+36-1461, mixed mode, sharing)

также в двух разных местах

  • /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/
  • /Library/Java/JavaVirtualMachines/openjdk-14.jdk/Contents/Home/bin/

поэтому мои вопросы

  • почему для каждой установки OpenJDK есть два разных места?
  • как узнать, есть ли в моей системе больше установок JDK? Запустил sudo find / -name java, который уничтожил мой терминал (см. Журнал здесь ).
  • Как узнать, как установлены эти разные версии java?
  • Я понимаю, что JDK это Java SDK, а JRE (Java Runtime Environment) - это oracle вещь, которую я думаю, что OpenJDK не имеет (?), но смотрит на страницу загрузки OpenJDK что такое "JM C "и" Java SE "?!

1 Ответ

1 голос
/ 19 апреля 2020

вы видите, как JDK работает на macOS. но в основном то, что вы должны знать, что у нас есть две сущности, называемые JDK и JRE. JDK - это инструмент для java разработчиков для компиляции и запуска их приложений. JRE - это среда выполнения для клиентов для запуска java приложений. JDK содержит JRE, поэтому вам не нужно устанавливать JRE, когда у вас есть JDK.

JDK - это папка, которую вы можете создать в зависимости от вашей ОС и скопировать ее туда, куда вам нужно, и просто добавить папку bin в PATH. так что у вас может быть много папок JDK, но только ваша папка PATH добавлена ​​к вашей текущей рабочей JDK, и они не работают одновременно в одной среде, но вы можете иметь несколько версий Java для разных пользователей профили.

  1. у вас есть одна установка с ее метаданными и ссылками по всему macOS.
  2. вы можете иметь несколько папок JDK по всему жесткому диску, но только одну из них на текущее время работает, и это будет то, что у вас есть в профиле пользователя.
  3. Я не знаю, как узнать, как они установлены. Вы можете запросить такие инструменты, как brew в вашей операционной системе, чтобы узнать, установлены ли они java или нет, но не из самой JDK.
  4. JM C - это java управление полетом, которое является приложением для мониторинга java. Как я уже сказал, JRE - это среда выполнения для запуска приложений, и OpenJDK также включает в себя среду выполнения. JavaSE - это спецификация Java для стандартной версии, поскольку у нас есть и другие версии.
...