====== Java ======

====== OpenJDK ======

OpenJDK — это проект с открытым исходным кодом, который представляет собой свободную реализацию платформы Java Standard Edition. Этот проект поддерживается Oracle Corporation, но в нем также участвуют другие компании, такие как IBM, Red Hat и Apple. OpenJDK включает в себя полный набор инструментов для разработки, включая компилятор, библиотеки и отладчик.

====== AdoptOpenJDK (Adoptium) ======

AdoptOpenJDK, сейчас известный как Adoptium, — это некоммерческий проект, основной целью которого является предоставление бинарных сборок OpenJDK для различных платформ. Этот проект поддерживается сообществом Eclipse Foundation и является быстрым и надежным способом получения OpenJDK.

====== Install: apt / jabba / asdf / etc ======

===== asdf =====

asdfэто менеджер версий инструмента. Все определения версий инструментов содержатся в одном файле ( .tool-versions), который вы можете зарегистрировать в репозитории Git вашего проекта, чтобы поделиться с вашей командой, гарантируя, что все используют одни и те же версии инструментов.

  - https://github.com/asdf-vm/asdf
  - https://github-com.translate.goog/halcyon/asdf-java

<code bash>
$ git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.12.0
$ echo "[ -s \"$HOME/.asdf/asdf.sh\" ] && source \"$HOME/.asdf/asdf.sh\"" >> ~/.bashrc
$ echo "[ -s \"$HOME/.asdf/completions/asdf.bash\" ] && source \"$HOME/.asdf/completions/asdf.bash\"" >> ~/.bashrc
$ asdf list
$ asdf plugin list
$ asdf plugin list --urls
$ asdf plugin add java
$ echo "[ -s \"$HOME/.asdf/plugins/java/set-java-home.bash\" ] && source \"$HOME/.asdf/plugins/java/set-java-home.bash\""  >> ~/.bashrc
$ asdf plugin add gradle
$ asdf list-all java|grep adoptopenjdk
$ asdf list-all gradle|grep 7.6
$ asdf install java adoptopenjdk-8.0.181+13
$ asdf install gradle 7.6
$ asdf global java adoptopenjdk-8.0.181+13
$ asdf local java adoptopenjdk-8.0.181+13
$ asdf local gradle 7.6
$ asdf current 
$ java -version
</code>

  - local - только для локального каталога
  - global - для всей системы

<code bash>
$ asdf plugin add java                # Add java Plugin
$ asdf list all java                  # List all available java versions
$ asdf install java temurin-20.0.1+9  # Install specific jdk version
$ asdf global java temurin-17.0.7+7   # Set the global jdk version
$ asdf local java temurin-20.0.1+9    # Set the local version for calls from the current directory
$ asdf list
$ asdf current
$ java -version
$ which java
</code>

==== Обновление ====

<code bash>
$ asdf plugin update --all 
$ asdf update --head
</code>

====== Ошибки ======

<code bash>
PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
</code>