Несколько версий java на одном компьютере windows

We have a couple of applications running on Java 5 and would like now to bring in an application based on Java 6. Can both java versions live together under Windows? Is there any control panel to...

We can install multiple versions of Java Development kits on the same machine using SDKMan.

Some points about SDKMan are as following:

  1. SDKMan is free to use and it is developed by the open source community.
  2. SDKMan is written in bash and it only requires curl and zip/unzip programs to be present on your system.
  3. SDKMan can install around 29 Software Development Kits for the JVM such as Java, Groovy, Scala, Kotlin and Ceylon. Ant, Gradle, Grails, Maven, SBT, Spark, Spring Boot, Vert.x.
  4. We do not need to worry about setting the _HOME and PATH environment variables because SDKMan handles it automatically.

SDKMan can run on any UNIX based platforms such as Mac OSX, Linux, Cygwin, Solaris and FreeBSD and we can install it using following commands:

$ curl -s "https://get.sdkman.io" | bash  
$ source "$HOME/.sdkman/bin/sdkman-init.sh" 

Because SDKMan is written in bash and only requires curl and zip/unzip to be present on your system. You can install SDKMan on windows as well either by first installing Cygwin or Git Bash for Windows environment and then running above commands.

Command sdk list java will give us a list of java versions which we can install using SDKMan.

Installing Java 8

$ sdk install java 8.0.201-oracle

Installing Java 9

$ sdk install java 9.0.4-open 

Installing Java 11

$ sdk install java 11.0.2-open

Uninstalling a Java version

In case you want to uninstall any JDK version e.g., 11.0.2-open you can do that as follows:

$ sdk uninstall java 11.0.2-open

Switching current Java version

If you want to activate one version of JDK for all terminals and applications, you can use the command

sdk default java <your-java_version>

Above commands will also update the PATH and JAVA_HOME variables automatically. You can read more on my article How to Install Multiple Versions of Java on the Same Machine.

We can install multiple versions of Java Development kits on the same machine using SDKMan.

Some points about SDKMan are as following:

  1. SDKMan is free to use and it is developed by the open source community.
  2. SDKMan is written in bash and it only requires curl and zip/unzip programs to be present on your system.
  3. SDKMan can install around 29 Software Development Kits for the JVM such as Java, Groovy, Scala, Kotlin and Ceylon. Ant, Gradle, Grails, Maven, SBT, Spark, Spring Boot, Vert.x.
  4. We do not need to worry about setting the _HOME and PATH environment variables because SDKMan handles it automatically.

SDKMan can run on any UNIX based platforms such as Mac OSX, Linux, Cygwin, Solaris and FreeBSD and we can install it using following commands:

$ curl -s "https://get.sdkman.io" | bash  
$ source "$HOME/.sdkman/bin/sdkman-init.sh" 

Because SDKMan is written in bash and only requires curl and zip/unzip to be present on your system. You can install SDKMan on windows as well either by first installing Cygwin or Git Bash for Windows environment and then running above commands.

Command sdk list java will give us a list of java versions which we can install using SDKMan.

Installing Java 8

$ sdk install java 8.0.201-oracle

Installing Java 9

$ sdk install java 9.0.4-open 

Installing Java 11

$ sdk install java 11.0.2-open

Uninstalling a Java version

In case you want to uninstall any JDK version e.g., 11.0.2-open you can do that as follows:

$ sdk uninstall java 11.0.2-open

Switching current Java version

If you want to activate one version of JDK for all terminals and applications, you can use the command

sdk default java <your-java_version>

Above commands will also update the PATH and JAVA_HOME variables automatically. You can read more on my article How to Install Multiple Versions of Java on the Same Machine.

Время прочтения
4 мин

Просмотры 11K

И снова здравствуйте. В преддверии старта курса «Разработчик Java» подготовили для вас перевод интересной статьи.


Если вам, как и мне, приходится одновременно работать с несколькими проектами (как с легаси, так и с современными), а возможно, вы разрабатываете какую-то библиотеку или утилиту для пользователей с разными версиями Java, то вы поймете проблему с переключением между разными JDK.

В наши дни установка, управление и переключение между JDK при разработке становится непростой задачей, потому что большое количество разработчиков все еще работает с Java 8, хотя многие уже переходят на Java 11. Эта проблема может быть решена разными способами. В этой статье мы рассмотрим некоторые из них.

Ручной способ

Вы можете скачать дистрибутивы с сайта вендора JDK и установить их все вручную (или просто распаковать их в какую-нибудь папку вроде $user/jdks) и все. Но тогда вам придется каждый раз проверять и обновлять JAVA_HOME, чтобы там была нужная вам JDK.

Это можно сделать с помощью bash-скриптов, bash-функций и т. д. В чем же тогда проблема? Вы просто можете забыть вызвать скрипт / функцию и поймете, что что-то пошло не так, только когда увидите UnsupportedClassVersionError.

Если вы предпочитаете все делать вручную, то можете покопаться в интернете для поиска решений. И это может быть хорошим вариантом для продвинутых пользователей. Но я использую для этого пару утилит. Итак, давайте посмотрим на них.

Лучший способ

На мой взгляд, идеальным решением будет объединение двух open source — инструментов, которые существуют уже довольно давно, и возможно, вы знакомы, по крайней мере, с одним из них. Но что вы не знаете, так это то, что их можно использовать вместе.

  • SDKMAN!
  • jEnv

Давайте посмотрим на их совместное использование.

Установка нескольких JDK


После установки SDKMAN! наберите:

$ sdk list java

Найдите нужного вендора, версию и введите:

$ sdk install java <id>

Давайте установим четыре JDK: две последние версии Oracle OpenJDK и две LTS-версии AdoptOpenJDK.

При установке не выбирайте JDK по умолчанию.

  1. AdoptOpenJDK сборка OpenJDK 8u252 — LTS
  2. AdoptOpenJDK сборка OpenJDK 11.0.7 — LTS
  3. Oracle OpenJDK 14 — Последний GA
  4. Oracle OpenJDK 15 — Early Access сборка

Эти четыре версии должны отвечать вашим потребностям для легаси-проектов на Java 8, для современных проектов на Java 11, а также для экспериментов с нововведениями в Java 14 и Java 15.

Отлично. У вас есть четыре JDK, установленные локально с помощью SDKMAN! Я думаю, что эта утилита действительно удобна для установки JDK и, я надеюсь, она вам тоже понравилась.

Все установленные JDK можно найти в следующем каталоге:

$ cd /Users/bruno/.sdkman/candidates/java
$ ls
11.0.7.hs-adpt  14.0.1-open     15.ea.20-open   8.0.252.hs-adpt

Если у вас нет необходимости часто переключаться между разными JDK, то этого будет достаточно. Вы можете использовать SDKMAN! для выбора JDK:

$ sdk current java
Using java version 15.ea.19-open
$ sdk default java 15.ea.20-open
Default java version set to 15.ea.20-open

На этом можно остановиться и использовать только SDKMAN!, но рано или поздно, вы забудете переключить JDK точно так же как при ручном подходе. Поэтому я предпочитаю автоматическое переключение JDK.

Управление несколькими JDK с помощью jEnv

Несмотря на то что SDKMAN! удобен для установки JDK, но он не помогает при автоматическом переключении между разными JDK при переходе от одного проекта к другому. Здесь нам поможет jEnv.

После того как вы установите несколько JDK, с помощью SDKMAN! или любыми другими способами, вам нужно будет добавить их в jEnv:

$ cd ~/.sdkman/candidates/java
$ ls -1
11.0.7.hs-adpt 
14.0.1-open    
15.ea.20-open
8.0.252.hs-adpt
$ jenv add 15.ea.20-open
openjdk64-15-ea added
15-ea added
15-ea added
...
$ jenv versions
 system
 1.8
 1.8.0.252
 11.0
 11.0.7
 14.0
 14.0.1
* 15-ea (set by /Users/bruno/.jenv/version)
 openjdk64-1.8.0.252
 openjdk64-11.0.7
 openjdk64-14.0.1
 openjdk64-15-ea

Повторите команду jenv add для оставшихся трех версий JDK.

jEnv особенно удобен для тех, кто постоянно использует командную строку. Он позволит вам:

  1. Установить версию Java глобально для вашей системы.
  2. Установить версию Java для текущего каталога / проекта, в котором вы находитесь.
  3. Установить версию Java для текущего shell’а.

jEnv использует shim и автоматически управляет переменной окружения JAVA_HOME. Таким образом, после того как вы настроите вашу систему, jEnv будет переключать версию JDK на наиболее подходящую, на основе вышеуказанных приоритетов и текущей директории. Круто! У него есть и другие полезные функции — дополнительную информацию смотрите на сайте.

Автоматическое переключение между JDK

Теперь у вас установлены Java 8, 11, 14 и 15-EA. Итак, как же переключаться между ними? Давайте настроим версии и протестируем переключение.

Сначала нужно указать дефолтную глобальную JDK в системе. Для этого я обычно использую ранние сборки (Early Access). Всякий раз, когда я начинаю работать с новым проектом, я автоматически использую предстоящий релиз, что помогает мне выявить потенциальные проблемы, которые я могу сообщить в проект OpenJDK. Вы же тоже так делаете…

$ jenv global 15

Теперь для любой папки, в которой вы находитесь, при выполнении java -version вы получите OpenJDK 15 EA.

Если у вас есть проект, который должен использовать Java 8, то перейдите в папку и запустите:

$ jenv local 1.8

В результате будет создан файл под названием .java-version со следующим содержимым:

$ cat .java-version
1.8

Этот файл сообщает jEnv, какую JDK использовать, когда вы находитесь в этой папке.

Наконец, если вы и хотите временно переключиться на другую версию JDK, то используйте jenv shell.

Здесь есть демо, которое может пояснить все вышеописанное и как работает автопереключение.

После публикации статьи на Reddit были несколько интересных комментариев, о которых стоит здесь сказать:

  • SDKMAN! с версии 5.8.1+ поддерживает sdk env и там тоже доступно автоматическое переключение.
  • direnv очень хорош и не привязан к java. Делает то же самое, что и jEnv, за исключением того, что не помогает вам легко переключать JDK. Вы должны редактировать файлы вручную.
  • autoenv — еще одна альтернатива direnv с теми же ограничениями.
  • jabba — наиболее перспективная альтернатива сочетанию SDKMAN + jEnv, поскольку поддерживает весь их функционал и работает в Windows (PowerShell), что не поддерживается другими, упомянутыми выше, инструментами.

Надеюсь, вам понравилось прочитанное. Если у вас есть вопросы, просто свяжитесь со мной в Твиттере.


УПРАВЛЯЕМ ВЕРСИЯМИ БАЗЫ ДАННЫХ ЧЕРЕЗ FLYWAY


Еще по теме

  • Миграции баз данных с Flyway
  • Асинхронное логирование с log4j для любознательных
  • OOMkiller в Docker сложнее, чем вы думаете
  • Назад в будущее с курсом «Java-разработчик»

Содержание

  1. Русские Блоги
  2. Как установить несколько версий JDK на одном компьютере
  3. Преступность
  4. Введение в СДКМАН
  5. Установите SDKMAN
  6. Установите JDK, используя SDKMAN
  7. Point Sdkman на установленную версию Java
  8. Несколько примеров переключения версии JDK
  9. Как удалить указанную версию JDK
  10. Intellij Idea использует SDMAN для установки JDK
  11. Интеллектуальная рекомендация
  12. Жареная монета робота: будда жареная монета
  13. Подробная интерпретация статьи Mesos и архитектуры системы управления ресурсами и планирования задач
  14. Управление несколькими JDK в Mac OS, Linux и Windows WSL2
  15. Ручной способ
  16. Лучший способ
  17. Установка нескольких JDK
  18. Управление несколькими JDK с помощью jEnv
  19. Автоматическое переключение между JDK
  20. Можно ли одновременно держать java 8 и java 9?
  21. 3 ответа 3
  22. Всё ещё ищете ответ? Посмотрите другие вопросы с метками java java-9 или задайте свой вопрос.
  23. Похожие
  24. Подписаться на ленту
  25. Как использовать две разные версии Java на одном компьютере?
  26. 2 ответа 2
  27. Как установить несколько версий Java на одном компьютере
  28. Установка SDKMan

Русские Блоги

Как установить несколько версий JDK на одном компьютере

Преступность

Для использования Java Друзья, разработанные языком, могут столкнуться с этой ситуацией, иногда хотят учиться и исследовать Java Некоторые новые функции, предоставляемые последней версией, такие как Java 11 Но вы не можете установить его на свой собственный компьютер, потому что ваша команда использует старую версию (в настоящее время мы использовали Java 8 ), Вы не хотите влиять на текущий проект. Или вы поддерживаете и разработав несколько проектов, и эти разные проекты используются JDK Версия отличается, такая как используемые старые проекты JDK 8 И новые проекты, которые вы собираетесь использовать новую версию JDK 11 Эти условия должны быть установлены на компьютере. JDK И он должен быть в состоянии легко переключаться между несколькими версиями. Главный герой должен быть введен сегодняSDKMAN Он может очень хорошо решить вышеуказанную проблему, что обеспечивает управление несколькими версиями на нескольких версиях на одном компьютере. Следует отметить, что этот инструмент доступен только для классов. Unix Система (например, MAC OSX, Linux, Cygwin, Solaris, FreeBSD и т. Д.).

Введение в СДКМАН

Прямая ссылкаSDKMan Введение официального сайта выглядит следующим образом:

SDKMAN! is a tool for managing parallel versions of multiple Software Development Kits on most Unix based systems. It provides a convenient Command Line Interface (CLI) and API for installing, switching, removing and listing Candidates.

Проще говоря, он предоставляет возможность управлять несколькими версиями комплекта разработки, а также предоставлять несколько интерфейсов командной строки, чтобы сделать нас удобную установку, переключение версию, удаление версий и список дисплея. О SDKMan Также есть несколько баллов следующим образом:

Установите SDKMAN

SDKMan Может работать в любом классе Unix В системе нам нужно только ввести следующую команду в командной строке для установки:

45b2f242ea308e7cef369286d105105f

Затем сделайте следующую команду, загрузите файл sdkman-init.sh Мы можем пройти после текущей среды. sdk version Чтобы убедиться, что это успешно, вы также можете пройти sdk help Отображение команды sdk Использование команды и помощь ( PS: Вы можете установить Cygwin или Git Bash Run или выше для друзей, которые используют среду Windows. )。

f06987a300cf2ce92b5b36cc43d17884

Установите JDK, используя SDKMAN

Я уже ввел это, SDKMan Поддержка до 29 управлений пакетов по разработке программного обеспечения, мы также можем использовать sdk list Команда для просмотра полного списка поддержки, эта статья в основном вводит Java Связанный контент, может передавать команду sdk list java Для просмотра установки поддержки Java версия.

2e0987533db0e8ceaba539044101def9

Установите следующую команду Java 11 :

93230f1213eac466f2f1734c0337720a

Теперь, если проверка Java Версия JAVA_HOME Переменные среды можно увидеть Java Версия была обновлена 11.0.7 。

8f1fcc6e9dda4c7397b6c0a6db99ba91

Вы можете использовать следующую команду для установки использования по умолчанию. JDK версия.

Point Sdkman на установленную версию Java

4d423b4f6594638075445d1c740737ec

Несколько примеров переключения версии JDK

SDKMan Команда sdk use java Переключение между несколькими версиями, используйте sdk use java jdk1.8.0_181.jdk Команда использовать ранее установленные Java 8 。

96c9208f1b763f382f1a72b43ffab125

Используйте команду sdk use java 11.0.7.hs-adpt Чтобы установить версию Java 11 。

bc8cab470bb6e429cf86b04b5a88138f

Что обратить внимание: используйте команды sdk use java Только когда текущий сеанс действителен, если вы выключите терминал и откройте его снова, вы будете использовать ранее установленную версию, вы не измените свою локальную версию, вы можете использовать ее. sdk default java Настроить постоянный вступление в силу.

Как удалить указанную версию JDK

Если вы хотите удалить любой установленный JDK Версия, такая как: 11.0.7.hs-adpt Вы можете использовать следующую команду для удаления:

На данный момент, если вы хотите передать это снова SDKMan Удалите версию, не заново загрузите снова, подскажу Found a previously downloaded java 11.0.7.hs-adpt archive. Not downloading it again. Поскольку предыдущая операция удаления на самом деле не удаляет файл сжатого исходного сжатого пакета с вашего компьютера.

Intellij Idea использует SDMAN для установки JDK

143a8e34a7e80735fa3853a10e72acb1

В IntelliJ IDEA Открыть любой Java После проекта вы можете нажать Command + : Кнопка ярлыков открывает окно структуры проекта, Project SDK Модуль выберите новый JDK Введите вам нужно JDK Версия SDKMan Путь в середине.

bb32a315627f7a0fb883ae825a47513e

Интеллектуальная рекомендация

Жареная монета робота: будда жареная монета

Генеральный директор Hammer Technology Luo Yonghao сегодня сказал в Weibo. «Накануне революции платформы, вы не волнуетесь, застраховатеть весь день, я не заработал, сколько денег, и у меня не б.

7712dcffcadc092c1493cf98465fe7e9

Подробная интерпретация статьи Mesos и архитектуры системы управления ресурсами и планирования задач

e2bd09f0483247141e7f522633b69a78

Это экспериментальный отчет о первом семестре «База данных базы данных», в общей сложности 15 экспериментов, в топ-12 библиотеке Baidu, после трех онлайн, я не могу найти его, я провел мно.

Источник

Управление несколькими JDK в Mac OS, Linux и Windows WSL2

И снова здравствуйте. В преддверии старта курса «Разработчик Java» подготовили для вас перевод интересной статьи.

image loader

Если вам, как и мне, приходится одновременно работать с несколькими проектами (как с легаси, так и с современными), а возможно, вы разрабатываете какую-то библиотеку или утилиту для пользователей с разными версиями Java, то вы поймете проблему с переключением между разными JDK.

79z0b9cqo9 29r zf8lwmu4t80

В наши дни установка, управление и переключение между JDK при разработке становится непростой задачей, потому что большое количество разработчиков все еще работает с Java 8, хотя многие уже переходят на Java 11. Эта проблема может быть решена разными способами. В этой статье мы рассмотрим некоторые из них.

Ручной способ

Если вы предпочитаете все делать вручную, то можете покопаться в интернете для поиска решений. И это может быть хорошим вариантом для продвинутых пользователей. Но я использую для этого пару утилит. Итак, давайте посмотрим на них.

Лучший способ

На мой взгляд, идеальным решением будет объединение двух open source — инструментов, которые существуют уже довольно давно, и возможно, вы знакомы, по крайней мере, с одним из них. Но что вы не знаете, так это то, что их можно использовать вместе.

Установка нескольких JDK

image loader
После установки SDKMAN! наберите:

Найдите нужного вендора, версию и введите:

Давайте установим четыре JDK: две последние версии Oracle OpenJDK и две LTS-версии AdoptOpenJDK.

При установке не выбирайте JDK по умолчанию.

Отлично. У вас есть четыре JDK, установленные локально с помощью SDKMAN! Я думаю, что эта утилита действительно удобна для установки JDK и, я надеюсь, она вам тоже понравилась.

Все установленные JDK можно найти в следующем каталоге:

Если у вас нет необходимости часто переключаться между разными JDK, то этого будет достаточно. Вы можете использовать SDKMAN! для выбора JDK:

На этом можно остановиться и использовать только SDKMAN!, но рано или поздно, вы забудете переключить JDK точно так же как при ручном подходе. Поэтому я предпочитаю автоматическое переключение JDK.

Управление несколькими JDK с помощью jEnv

image loader

Несмотря на то что SDKMAN! удобен для установки JDK, но он не помогает при автоматическом переключении между разными JDK при переходе от одного проекта к другому. Здесь нам поможет jEnv.

После того как вы установите несколько JDK, с помощью SDKMAN! или любыми другими способами, вам нужно будет добавить их в jEnv:

Повторите команду jenv add для оставшихся трех версий JDK.

jEnv особенно удобен для тех, кто постоянно использует командную строку. Он позволит вам:

Автоматическое переключение между JDK

Теперь у вас установлены Java 8, 11, 14 и 15-EA. Итак, как же переключаться между ними? Давайте настроим версии и протестируем переключение.

Сначала нужно указать дефолтную глобальную JDK в системе. Для этого я обычно использую ранние сборки (Early Access). Всякий раз, когда я начинаю работать с новым проектом, я автоматически использую предстоящий релиз, что помогает мне выявить потенциальные проблемы, которые я могу сообщить в проект OpenJDK. Вы же тоже так делаете…

Если у вас есть проект, который должен использовать Java 8, то перейдите в папку и запустите:

Этот файл сообщает jEnv, какую JDK использовать, когда вы находитесь в этой папке.

Здесь есть демо, которое может пояснить все вышеописанное и как работает автопереключение.

После публикации статьи на Reddit были несколько интересных комментариев, о которых стоит здесь сказать:

Источник

Можно ли одновременно держать java 8 и java 9?

Интересуюсь, потому что есть одно java приложение, которое было создано на другом компьютере не запускается на моем. Возможно, в этом дело. 0YpZh

3 ответа 3

Кроме уже данных ответов/советов хочется упомянуть такие инструменты, как jabba и sdkman, которые предназначены именно для безболезненной установки и переключения различных версий JDK и сопутствующих инструментов. В случае их использования все телодвижения сводятся к одной команде в консоли.

По поводу совместимости Java 8 и Java 9.Стоит почитать про Java 9 Jigsaw https://blog.codefx.org/java/java-9-migration-guide/

можно, если осторожно 🙂

а если серьезно, то к сожалению приходится почти все время «держать» несколько версий в связи с неполной совместимостью.

как уже упоминалось в комментариях, основную (не обязательно самую свежую) версию вы прописываете в путях, а другие используете в загрузчиках или ярлыках конкретных приложений.

если у вас проблема с конкретным приложением, прикрепите логи или, если до логов добраться нет возможности, хотя бы скриншот выдаваемой ошибки.

dq0Yh

Всё ещё ищете ответ? Посмотрите другие вопросы с метками java java-9 или задайте свой вопрос.

Похожие

Подписаться на ленту

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2022 Stack Exchange Inc; материалы пользователей предоставляются на условиях лицензии cc by-sa. rev 2022.11.2.40623

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Источник

Как использовать две разные версии Java на одном компьютере?

у нас есть одно Java-приложение, которое может работать только на 1.6, и веб-сайт, который работает только на последней версии Java 1.7.

У нас на компьютере установлена Java. Но, к сожалению, он не может автоматически определить, какую Java использовать во время работы приложений.

Кажется, по умолчанию компьютер использует 1.7, поэтому, когда я использую приложение, мне нужно перейти на панель управления и отключить 1.7, чтобы компьютер мог использовать 1.6.

Есть ли какое-то решение? Лайк комп понимает автоматически 1.6 для приложения и 1.7 для загрузки в браузере.

2 ответа 2

Проблема заключается в том, что используемая версия Java настраивается в системной переменной JAVA_HOME и / или путем добавления соответствующего файла java.exe в путь к корзине, и вся система просматривает эти два местоположения.

Для запуска с использованием другой версии Java вам просто нужно запустить эту версию.

Поэтому настройте любую версию, которую вы хотите, в своем веб-браузере в качестве основной.

Затем создайте ссылку / пакет / что угодно для запуска программы и непосредственно выберите Java, который вы хотите запустить. то есть:

Если вы используете Java 1.7.0_40+, вы, вероятно, сможете решить вашу проблему, используя наборы правил развертывания:

В обновлении 40 для Java 7 вводится новая функция под названием «Набор правил развертывания», предназначенная для решения проблемы безопасности и совместимости в апплетах браузера без влияния на обычные серверные программы Java, такие как Eclipse, Freemind или Tomcat. В частности, этот набор правил развертывания затрагивает два основных момента:

Возможность администратора настольного компьютера контролировать совместимость версий Java и выбор по умолчанию на рабочем столе конечного пользователя. Например, ваши пользователи могут использовать самые последние обновления безопасности для большинства апплетов браузера, но по-прежнему использовать старую Java 1.6 для этого одного унаследованного приложения, которое больше не поддерживается. Осведомленность конечного пользователя о том, кто создал приложение, и их взаимодействие по умолчанию (спрашивать, запускать или блокировать). Увидев реальную компанию или подписавшего, пользователь защищен от запуска кода кем-то, кого он не знает. Например, я бы доверял «Моему университету» или «Эрику Костлоу», но не «Неизвестному издателю» или кому-то еще, утверждающему, что я. Для получения дополнительной информации, пожалуйста, ознакомьтесь со статьей Oracle по наборам правил развертывания.

Источник

Как установить несколько версий Java на одном компьютере

Некоторое время назад я написал одну статью Java Lambda Expression с объяснением на примере, но мне было легко исследовать и Java 8, потому что я использовал его в своем проекте, и мне было разрешено установить и использовать его. Но в моем текущем проекте мы все еще используем Java 8, и теперь я хочу обновить себя и изучить Java 11, но не могу установить его.

И это происходит со многими разработчиками Java. Иногда вы хотите изучить и изучить последнюю версию Java, например Java 11, но вы не можете установить ее на свой компьютер, потому что вы и ваша команда работаете над какой-то более старой версией, например Java 8, и вы не хочу ломать ваш проект.

Или предположим, что вы работаете над несколькими проектами, некоторые из которых используют Java 8, а некоторые новые проекты используют Java 11. Так что для параллельной работы над этими проектами вам нужно будет установить несколько JDK на вашу машину, и вы сможете переключаться между ними. между ними.

Что, если есть способ, и что, если у вас есть возможность установить несколько версий Java и выключить и включить их в соответствии с вашими потребностями.

Ну, есть инструмент под названием SDKMan, который позволяет нам делать то же самое и согласно официальному сайту:


SDKMan! это инструмент для управления параллельными версиями нескольких
Комплекты разработки программного обеспечения на большинстве систем на основе Unix. Он предоставляет удобный интерфейс командной строки (CLI) и API для установки, переключения, удаления и вывода списка кандидатов.

Некоторые моменты о SDKMan следующие:

Установка SDKMan

SDKMan может работать на любых платформах на основе UNIX, таких как Mac OSX, Linux, Cygwin, Solaris и FreeBSD, и мы можем установить его с помощью следующих команд:

Источник

Абсолютно возможно установить рядом несколько версий JRE / JDK. … По сути, JRE, которая будет работать, будет первой в вашей переменной среды PATH. Вы можете изменить это, или переменную JAVA_HOME, или создать определенные файлы cmd / bat для запуска желаемых приложений, каждое с другим JRE в пути.

Установить несколько версий Java одновременно в Windows невероятно просто. Вы можете загрузить и запустить установщик для каждой версии, который автоматически устанавливает версии в отдельные каталоги.

Могу ли я установить несколько версий JDK?

Да, вы можете установить столько Java SDK, сколько захотите. При разработке вы просто используете JDK, который хотите использовать. … Таким образом, вы можете легко загрузить и распаковать все нужные вам версии, а также запустить java и javac из каталога, который вас сейчас интересует.

Могу ли я установить несколько версий JRE?

Да, на вашем компьютере могут быть установлены 2 разных jre.

Могут ли JDK и JRE быть разными версиями?

Если в системе установлены две версии JDK или JRE, одна с новым форматом строки версии, представленным в JDK 9, а другая с форматом старой версии, то будет два разных значения ключа реестра CurrentVersion. Например, если JDK 1.8.

Как узнать, установлена ​​ли Java в Windows?

Выберите Пуск -> Панель управления -> Установка и удаление программ. Здесь вы можете увидеть список установленного на вашем компьютере программного обеспечения. Список отображается в алфавитном порядке. Убедитесь, что имя Java указано в списке установленного программного обеспечения.

Можем ли мы запустить две JVM на одной машине?

Да, вы можете установить более одного jvm на свой компьютер, потому что ОС загружает экземпляр jvm (а не весь jvm) в ОЗУ. Мы можем вызывать разные jvm, например JDK 1.4 или JDK 1.6, задав его путь. Возможно использование нескольких JRE (Java Runtime Enviroment). … Дело в том, что JVM не всегда работает в вашей системе.

Могу ли я скачать старые версии Java?

Как я могу скачать более старую версию Java? Посетите страницу загрузки архива Java, чтобы получить другие версии Java. Мы рекомендуем установить последнюю версию Java с сайта java.com.

Что Openjdk 11?

JDK 11 — это эталонная реализация с открытым исходным кодом версии 11 платформы Java SE, как указано в JSR 384 в процессе сообщества Java. JDK 11 стал общедоступным 25 сентября 2018 г.

Где Sdkman устанавливает Java?

SDKMan устанавливает все JDK под. sdkman / кандидаты / java /, и вы можете найти. sdkman в вашем домашнем каталоге.

Как установить старую версию Java в Windows 10?

Установить старую версию java

  1. В этом руководстве рассматривается установка Java-версии JDK 1.8_60 на платформе Windows 10.…
  2. Перейдите по URL-адресу загрузки JDK >> Прокрутите вниз и найдите Архив Java >> Нажмите «Загрузить». …
  3. Архивы Java разделены по версиям 1,5,6,7,8. …
  4. Введите свое имя пользователя и пароль Oracle; Щелкните Войти.

Нужны ли мне и JDK, и JRE?

Тогда вам не нужно устанавливать JRE, поскольку JDK обычно состоит из среды разработки и выполнения. Если вы установите JDK, JRE уже будет упакован в него и установлен автоматически вместе с JDK. … Java>, вам нужен JDK, в котором уже есть JRE. Для создания имени файла java вам понадобится только JRE.

Java 1.8 — это то же самое, что и 8?

javac -source 1.8 (это псевдоним для javac -source 8) java.

Какая версия Java лучше?

Java SE 8 остается предпочтительным производственным стандартом в 2019 году. Хотя были выпущены и 9, и 10, ни один из них не будет предлагать LTS. С момента своего первого выпуска в 1996 году Java сохранила репутацию одного из самых безопасных, надежных и платформенно-независимых языков для компьютерного программирования.

In this article, I will show you how to install multiple Java versions on Windows and how to change the Java version on the command line:

Multiple Java versions on Windows

To enable these Java version change commands on your system as well, follow this step-by-step guide.

Let’s go…

Step 1: Installing Multiple Java Versions

Installing multiple Java versions in parallel is incredibly easy in Windows. You can download and run the installer for each version, which automatically installs the versions in separate directories.

Download Sources

  • Java SE 1.1 – You can no longer install this version on 64-bit Windows.
  • Java SE 1.2 – Installed to C:jdk1.2.2 and C:Program Files (x86)JavaSoftJRE1.2 by default – I recommend changing this to C:Program Files (x86)Javajdk1.2.2 and C:Program Files (x86)Javajre1.2.2 for the sake of clarity.
  • Java SE 1.3 – Installed to C:jdk1.3.1_28 by default – I recommend changing this to C:Program Files (x86)Javajdk1.3.1_28.
  • Java SE 1.4 – Installed to C:j2sdk1.4.2_19 by default – I recommend changing this to C:Program Files (x86)Javajdk1.4.2_19.

Starting with the following versions, you don’t need to change the default installation directories:

  • Java SE 5
  • Java SE 6
  • Java SE 7
  • Java SE 8
  • Java SE 9 / OpenJDK 9
  • Java SE 10 / OpenJDK 10 (→ The most important new features in Java 10)

Attention – you may use the following Oracle distributions only for private purposes and development:

  • Java SE 11 / OpenJDK 11 (→ The most important new features in Java 11)
  • Java SE 12 / OpenJDK 12 (→ The most important new features in Java 12)
  • Java SE 13 / OpenJDK 13 (→ The most important new features in Java 13)
  • Java SE 14 / OpenJDK 14 (→ The most important new features in Java 14)
  • Java SE 15 / OpenJDK 15 (→ The most important new features in Java 15)
  • Java SE 16 / OpenJDK 16 (→ The most important new features in Java 16)
  • Java SE 17 / OpenJDK 17 (→ The most important new features in Java 17)
  • Java SE 18 / OpenJDK 18 (→ The most important new features in Java 18)
  • Java SE 19 / OpenJDK 19 (→ The most important new features in Java 19)

The following version is currently an early access build. You should use it only for testing purposes:

  • JDK 20 Early-Access Build (→ The most important new features in Java 20)

Step 2: Define Java Environment Variables

The following two environment variables decide which Java version an application uses:

  • JAVA_HOME – many start scripts use this variable.
  • Path – is used when running a Java binary (such as java and javac) from the console.

These variables should always point to the same Java installation to avoid inconsistencies. Some programs, such as Eclipse, define the Java version in a separate configuration file (for Eclipse, for example, this is the entry «-vm» in the eclipse.ini file).

Manually Setting the Java Environment Variables

The Java installers create various environment variables, which you need to clean up first (see below). The fastest way to change the environment variables is to press the Windows key and type «env» – Windows then offers «Edit the system environment variables» as a search result:

Opening Windows environment variables
Opening Windows environment variables

At this point, you can press «Enter» to open the system properties:

Windows 10 System Properties
Windows 10 System Properties

Click on «Environment Variables…» and the following window opens:

Windows environment variables Java 19
Windows environment variables Java 19

As the default version, I recommend the current release version, Java 19. Accordingly, you should make the following settings:

  • The top list («User variables») should not contain any Java-related entries.
  • The lower list («System variables») should contain an entry «JAVA_HOME = C:Program FilesJavajdk-19». If this entry does not exist, you can add it with «New…». If it exists but points to another directory, you can change it with «Edit…».
  • Delete the following entries under «Path» (if they exist):
    • C:ProgramDataOracleJavajavapath
    • C:Program Files (x86)Common FilesOracleJavajavapath
  • Insert the following entry instead:
    • %JAVA_HOME%bin

The entry should then look like the following (the other entries in the list will probably look different for you since you have other applications installed than I do):

Adding "%JAVA_HOME%bin" to the "Path" system variable
Adding «%JAVA_HOME%bin» to the «Path» system variable

The last entry ensures that Path and JAVA_HOME are automatically consistent.

Attention: this only works for the default setting configured here. If you change JAVA_HOME via the command line, you have to adjust Path accordingly. But don’t worry – the scripts you can download in the next step will do that automatically.

How to Check Your Java Version on Windows

Now open a command line to check the settings with the following commands:

echo %JAVA_HOME% java -version

Code language: plaintext (plaintext)

Here’s what you should see:

Check your Java version with "cmd"
Check your Java version with «cmd»

Step 3: Install the Scripts to Change the Java Version

To change the Java version on the command line, I have prepared some batch files that you can copy to your system. Here is the link: scripts-up-to-java20-v2.zip

The ZIP file contains scripts named java20.bat, java19.bat, java18.bat, etc., for all Java versions, plus some common scripts starting with «javaX». I suggest you unpack the scripts to C:Program FilesJavascripts.

The scripts look like this:

java19.bat:

@echo off call javaX "Java 19"

Code language: DOS .bat (dos)

javaX.bat:

@echo off call javaX-JAVA_HOME %1 set Path=%JAVA_HOME%bin;%Path% echo %~1 activated.

Code language: DOS .bat (dos)

javaX-JAVA_HOME.bat:

@echo off if %1 == "Java 1.2" set JAVA_HOME=C:Program Files (x86)Javajdk1.2.2 if %1 == "Java 1.3" set JAVA_HOME=C:Program Files (x86)Javajdk1.3.1_28 ... if %1 == "Java 19" set JAVA_HOME=C:Program FilesJavajdk-19 if %1 == "Java 20" set JAVA_HOME=C:Program FilesJavajdk-20

Code language: DOS .bat (dos)

The scripts update the JAVA_HOME environment variable and insert the bin directory at the beginning of the Path variable. That makes it the first directory to be searched for the corresponding executable when you run Java commands such as java or javac.

(The Path variable gets longer with each change. Do not worry about it. This only affects the currently opened command line.)

Step 4: Add the Script Directory to the Path

To be able to call the scripts from anywhere, you have to add the directory to the «Path» environment variable (just like you did with «%JAVA_HOME%bin» in the second step):

Adding "C:Program FilesJavascripts" to the "Path" system variable
Adding «C:Program FilesJavascripts» to the «Path» system variable

If you have installed the latest releases of all Java versions, you can use the scripts without any further adjustments. Open a new command line and enter, e.g., the following commands:

Changing the Java version
Changing the Java version

If one of the commands does not activate the expected Java version, please check if the path in the javaX-JAVA_HOME.bat file corresponds to the installation path of the Java version you want to activate.

Temporary, Permanent, and System-Wide Java Version Changes

The commands presented up to this point only affect the currently opened command line. As soon as you open another command line, the default version defined in step 2 is active again (Java 19, if you have not changed anything).

That is why there are not one but three scripts for each Java version:

  • java<version>: Activates the Java version in the current command line.
  • java<version>-user: Sets the Java version as the default version for your user account.
  • java<version>-system: Sets the Java version as the default version for the entire system-

The -user variants of the scripts additionally set the JAVA_HOME environment variable with the setx command, permanently writing the change to the registry:

java19-user.bat:

@echo off call javaX-user "Java 19"

Code language: DOS .bat (dos)

javaX-user.bat:

@echo off call javaX-JAVA_HOME %1 setx JAVA_HOME "%JAVA_HOME%" set Path=%JAVA_HOME%bin;%Path% echo %~1 activated as user default.

Code language: DOS .bat (dos)

The -system variants also specify the /M parameter in the setx command. This sets the system-wide environment variable instead of the user-specific one:

java19-system.bat:

@echo off call javaX-system "Java 19"

Code language: DOS .bat (dos)

javaX-system.bat:

@echo off call javaX-JAVA_HOME %1 setx JAVA_HOME "%JAVA_HOME%" /M set Path=%JAVA_HOME%bin;%Path% echo %~1 activated as system-wide default.

Code language: DOS .bat (dos)

Attention: To set the system-wide Java version, you must open the command line as an administrator. Otherwise, you will get the error message «ERROR: Access to the registry path is denied.

What You Should Do Next…

I hope you were able to follow the instructions well and that the commands work for you.

Now I would like to hear from you:

Were you able to follow the steps well – or do you have unanswered questions?

Either way, let me know by leaving a comment below.

Есть Java 8 , Java 9 и к ним JDK 8 и JDK 9.
Нужно ли удалить одну из версий, чтобы не возникало никаких сбоев?

Интересуюсь, потому что есть одно java приложение, которое было создано на другом компьютере не запускается на моем. Возможно, в этом дело.
введите сюда описание изображения

gil9red's user avatar

gil9red

75.2k5 золотых знаков49 серебряных знаков113 бронзовых знаков

задан 23 апр 2018 в 6:32

Oleg Khegay's user avatar

6

Кроме уже данных ответов/советов хочется упомянуть такие инструменты, как jabba и sdkman, которые предназначены именно для безболезненной установки и переключения различных версий JDK и сопутствующих инструментов. В случае их использования все телодвижения сводятся к одной команде в консоли.

ответ дан 23 апр 2018 в 8:48

etki's user avatar

etkietki

35.9k2 золотых знака55 серебряных знаков78 бронзовых знаков

  • Если у вас установлены две версии java, это не принесет проблем(кроме этих https://www.java.com/ru/download/faq/remove_olderversions.xml, но это скорее рекомендации для обычных пользователей, а не разработчиков). Вы можете выбирать, какую из них использовать как для компиляции, так и для запуска приложения: нужно изменить PATH, либо указать полный путь до исполняемой программы:
    "C:Program FilesJavajdk1.8.0_161binjavac" — вызов компилятора Java 8
    "C:Program FilesJavajdk1.8.0_161binjava" — запуск приложения на Java 8
    "C:Program FilesJavajdk1.9.0_160binjavac" — вызов компилятора Java 9
    "C:Program FilesJavajdk1.8.0_161binjava" — запуск приложения на Java 9
    Для того, чтобы избежать вашей проблемы, приложение может поставляться вместе с JRE, для которого оно разрабатывалось.

  • По поводу совместимости Java 8 и Java 9.Стоит почитать про Java 9 Jigsaw https://blog.codefx.org/java/java-9-migration-guide/

ответ дан 23 апр 2018 в 9:17

Andrey Dorohovich's user avatar

2

можно, если осторожно :)

а если серьезно, то к сожалению приходится почти все время «держать» несколько версий в связи с неполной совместимостью.

как уже упоминалось в комментариях, основную (не обязательно самую свежую) версию вы прописываете в путях, а другие используете в загрузчиках или ярлыках конкретных приложений.

если у вас проблема с конкретным приложением, прикрепите логи или, если до логов добраться нет возможности, хотя бы скриншот выдаваемой ошибки.

ответ дан 23 апр 2018 в 8:34

Ramiz's user avatar

RamizRamiz

1,6048 серебряных знаков15 бронзовых знаков

Содержание

  1. Несколько версий Java, работающих одновременно под Windows
  2. Как установить несколько версий Java на одном компьютере
  3. Установка SDKMan
  4. Как использовать две разные версии Java на одном компьютере?
  5. 2 ответа 2
  6. Управление несколькими JDK в Mac OS, Linux и Windows WSL2
  7. Ручной способ
  8. Лучший способ
  9. Установка нескольких JDK
  10. Управление несколькими JDK с помощью jEnv
  11. Автоматическое переключение между JDK
  12. Можно ли одновременно держать java 8 и java 9?
  13. 3 ответа 3
  14. Всё ещё ищете ответ? Посмотрите другие вопросы с метками java java-9 или задайте свой вопрос.
  15. Похожие
  16. Подписаться на ленту

Несколько версий Java, работающих одновременно под Windows

У нас есть несколько приложений, работающих на Java 5, и теперь мы хотели бы представить приложение, основанное на Java 6. Могут ли обе версии java работать вместе под Windows?

Есть ли какая-либо панель управления для установки соответствующей версии Java для различных приложений или какой-либо другой способ настройки, какая версия Java будет использоваться для запуска этого конкретного приложения?

Конечно, вы можете использовать несколько версий Java под Windows. И разные приложения могут использовать разные версии Java. Как ваше приложение запускается? Обычно у вас есть командный файл, в котором есть что-то вроде

Это будет искать исполняемый файл Java с использованием переменной PATH. Таким образом, если Java 5 находится первой в PATH, у вас возникнут проблемы с запуском приложения Java 6. Затем вы должны изменить пакетный файл, чтобы использовать определенную версию Java, например, определив переменную среды JAVA6HOME со значением C:javajava6 (если Java 6 установлена ​​в этом каталоге) и измените вызов пакетного файла

Абсолютно возможно установить несколько версий JRE / JDK бок о бок. Более того, вам не нужно делать ничего особенного, чтобы это произошло, поскольку Sun создает отдельную папку для каждой из них (в разделе Program Files).

Нет панели управления, чтобы проверить, какая JRE работает для каждого приложения. По сути, JRE, которая будет работать, будет первой в вашей переменной среды PATH. Вы можете изменить это, или переменную JAVA_HOME, или создать определенные файлы cmd / bat для запуска желаемых приложений, каждое с другим JRE в пути.

Я был потрясен неуклюжестью идей CLASSPATH, JAVA_HOME и PATH в Windows для отслеживания файлов Java. Я попал сюда из-за нескольких JRE и того, как этим довольствоваться. Не повторяя информации от парня, гораздо более умного, чем я, я бы предпочел указать на его статью по этому вопросу, которая, на мой взгляд, решает ее отлично.

Источник

Как установить несколько версий Java на одном компьютере

Некоторое время назад я написал одну статью Java Lambda Expression с объяснением на примере, но мне было легко исследовать и Java 8, потому что я использовал его в своем проекте, и мне было разрешено установить и использовать его. Но в моем текущем проекте мы все еще используем Java 8, и теперь я хочу обновить себя и изучить Java 11, но не могу установить его.

И это происходит со многими разработчиками Java. Иногда вы хотите изучить и изучить последнюю версию Java, например Java 11, но вы не можете установить ее на свой компьютер, потому что вы и ваша команда работаете над какой-то более старой версией, например Java 8, и вы не хочу ломать ваш проект.

Или предположим, что вы работаете над несколькими проектами, некоторые из которых используют Java 8, а некоторые новые проекты используют Java 11. Так что для параллельной работы над этими проектами вам нужно будет установить несколько JDK на вашу машину, и вы сможете переключаться между ними. между ними.

Что, если есть способ, и что, если у вас есть возможность установить несколько версий Java и выключить и включить их в соответствии с вашими потребностями.

Ну, есть инструмент под названием SDKMan, который позволяет нам делать то же самое и согласно официальному сайту:


SDKMan! это инструмент для управления параллельными версиями нескольких
Комплекты разработки программного обеспечения на большинстве систем на основе Unix. Он предоставляет удобный интерфейс командной строки (CLI) и API для установки, переключения, удаления и вывода списка кандидатов.

Некоторые моменты о SDKMan следующие:

Установка SDKMan

SDKMan может работать на любых платформах на основе UNIX, таких как Mac OSX, Linux, Cygwin, Solaris и FreeBSD, и мы можем установить его с помощью следующих команд:

Источник

Как использовать две разные версии Java на одном компьютере?

у нас есть одно Java-приложение, которое может работать только на 1.6, и веб-сайт, который работает только на последней версии Java 1.7.

У нас на компьютере установлена Java. Но, к сожалению, он не может автоматически определить, какую Java использовать во время работы приложений.

Кажется, по умолчанию компьютер использует 1.7, поэтому, когда я использую приложение, мне нужно перейти на панель управления и отключить 1.7, чтобы компьютер мог использовать 1.6.

Есть ли какое-то решение? Лайк комп понимает автоматически 1.6 для приложения и 1.7 для загрузки в браузере.

2 ответа 2

Проблема заключается в том, что используемая версия Java настраивается в системной переменной JAVA_HOME и / или путем добавления соответствующего файла java.exe в путь к корзине, и вся система просматривает эти два местоположения.

Для запуска с использованием другой версии Java вам просто нужно запустить эту версию.

Поэтому настройте любую версию, которую вы хотите, в своем веб-браузере в качестве основной.

Затем создайте ссылку / пакет / что угодно для запуска программы и непосредственно выберите Java, который вы хотите запустить. то есть:

Если вы используете Java 1.7.0_40+, вы, вероятно, сможете решить вашу проблему, используя наборы правил развертывания:

В обновлении 40 для Java 7 вводится новая функция под названием «Набор правил развертывания», предназначенная для решения проблемы безопасности и совместимости в апплетах браузера без влияния на обычные серверные программы Java, такие как Eclipse, Freemind или Tomcat. В частности, этот набор правил развертывания затрагивает два основных момента:

Возможность администратора настольного компьютера контролировать совместимость версий Java и выбор по умолчанию на рабочем столе конечного пользователя. Например, ваши пользователи могут использовать самые последние обновления безопасности для большинства апплетов браузера, но по-прежнему использовать старую Java 1.6 для этого одного унаследованного приложения, которое больше не поддерживается. Осведомленность конечного пользователя о том, кто создал приложение, и их взаимодействие по умолчанию (спрашивать, запускать или блокировать). Увидев реальную компанию или подписавшего, пользователь защищен от запуска кода кем-то, кого он не знает. Например, я бы доверял «Моему университету» или «Эрику Костлоу», но не «Неизвестному издателю» или кому-то еще, утверждающему, что я. Для получения дополнительной информации, пожалуйста, ознакомьтесь со статьей Oracle по наборам правил развертывания.

Источник

Управление несколькими JDK в Mac OS, Linux и Windows WSL2

И снова здравствуйте. В преддверии старта курса «Разработчик Java» подготовили для вас перевод интересной статьи.

image loader

Если вам, как и мне, приходится одновременно работать с несколькими проектами (как с легаси, так и с современными), а возможно, вы разрабатываете какую-то библиотеку или утилиту для пользователей с разными версиями Java, то вы поймете проблему с переключением между разными JDK.

79z0b9cqo9 29r zf8lwmu4t80

В наши дни установка, управление и переключение между JDK при разработке становится непростой задачей, потому что большое количество разработчиков все еще работает с Java 8, хотя многие уже переходят на Java 11. Эта проблема может быть решена разными способами. В этой статье мы рассмотрим некоторые из них.

Ручной способ

Если вы предпочитаете все делать вручную, то можете покопаться в интернете для поиска решений. И это может быть хорошим вариантом для продвинутых пользователей. Но я использую для этого пару утилит. Итак, давайте посмотрим на них.

Лучший способ

На мой взгляд, идеальным решением будет объединение двух open source — инструментов, которые существуют уже довольно давно, и возможно, вы знакомы, по крайней мере, с одним из них. Но что вы не знаете, так это то, что их можно использовать вместе.

Установка нескольких JDK

image loader
После установки SDKMAN! наберите:

Найдите нужного вендора, версию и введите:

Давайте установим четыре JDK: две последние версии Oracle OpenJDK и две LTS-версии AdoptOpenJDK.

При установке не выбирайте JDK по умолчанию.

Отлично. У вас есть четыре JDK, установленные локально с помощью SDKMAN! Я думаю, что эта утилита действительно удобна для установки JDK и, я надеюсь, она вам тоже понравилась.

Все установленные JDK можно найти в следующем каталоге:

Если у вас нет необходимости часто переключаться между разными JDK, то этого будет достаточно. Вы можете использовать SDKMAN! для выбора JDK:

На этом можно остановиться и использовать только SDKMAN!, но рано или поздно, вы забудете переключить JDK точно так же как при ручном подходе. Поэтому я предпочитаю автоматическое переключение JDK.

Управление несколькими JDK с помощью jEnv

image loader

Несмотря на то что SDKMAN! удобен для установки JDK, но он не помогает при автоматическом переключении между разными JDK при переходе от одного проекта к другому. Здесь нам поможет jEnv.

После того как вы установите несколько JDK, с помощью SDKMAN! или любыми другими способами, вам нужно будет добавить их в jEnv:

Повторите команду jenv add для оставшихся трех версий JDK.

jEnv особенно удобен для тех, кто постоянно использует командную строку. Он позволит вам:

Автоматическое переключение между JDK

Теперь у вас установлены Java 8, 11, 14 и 15-EA. Итак, как же переключаться между ними? Давайте настроим версии и протестируем переключение.

Сначала нужно указать дефолтную глобальную JDK в системе. Для этого я обычно использую ранние сборки (Early Access). Всякий раз, когда я начинаю работать с новым проектом, я автоматически использую предстоящий релиз, что помогает мне выявить потенциальные проблемы, которые я могу сообщить в проект OpenJDK. Вы же тоже так делаете…

Если у вас есть проект, который должен использовать Java 8, то перейдите в папку и запустите:

Этот файл сообщает jEnv, какую JDK использовать, когда вы находитесь в этой папке.

Здесь есть демо, которое может пояснить все вышеописанное и как работает автопереключение.

После публикации статьи на Reddit были несколько интересных комментариев, о которых стоит здесь сказать:

Источник

Можно ли одновременно держать java 8 и java 9?

Интересуюсь, потому что есть одно java приложение, которое было создано на другом компьютере не запускается на моем. Возможно, в этом дело. 0YpZh

3 ответа 3

Кроме уже данных ответов/советов хочется упомянуть такие инструменты, как jabba и sdkman, которые предназначены именно для безболезненной установки и переключения различных версий JDK и сопутствующих инструментов. В случае их использования все телодвижения сводятся к одной команде в консоли.

По поводу совместимости Java 8 и Java 9.Стоит почитать про Java 9 Jigsaw https://blog.codefx.org/java/java-9-migration-guide/

можно, если осторожно 🙂

а если серьезно, то к сожалению приходится почти все время «держать» несколько версий в связи с неполной совместимостью.

как уже упоминалось в комментариях, основную (не обязательно самую свежую) версию вы прописываете в путях, а другие используете в загрузчиках или ярлыках конкретных приложений.

если у вас проблема с конкретным приложением, прикрепите логи или, если до логов добраться нет возможности, хотя бы скриншот выдаваемой ошибки.

dq0Yh

Всё ещё ищете ответ? Посмотрите другие вопросы с метками java java-9 или задайте свой вопрос.

Похожие

Подписаться на ленту

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2021 Stack Exchange Inc; материалы пользователей предоставляются на условиях лицензии cc by-sa. rev 2021.10.18.40485

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Источник

у нас есть одно Java-приложение, которое может работать только на 1.6, и веб-сайт, который работает только на последней версии Java 1.7.

У нас на компьютере установлена Java. Но, к сожалению, он не может автоматически определить, какую Java использовать во время работы приложений.

Кажется, по умолчанию компьютер использует 1.7, поэтому, когда я использую приложение, мне нужно перейти на панель управления и отключить 1.7, чтобы компьютер мог использовать 1.6.

Есть ли какое-то решение? Лайк комп понимает автоматически 1.6 для приложения и 1.7 для загрузки в браузере.

Проблема заключается в том, что используемая версия Java настраивается в системной переменной JAVA_HOME и / или путем добавления соответствующего файла java.exe в путь к корзине, и вся система просматривает эти два местоположения.

Для запуска с использованием другой версии Java вам просто нужно запустить эту версию.

Поэтому настройте любую версию, которую вы хотите, в своем веб-браузере в качестве основной.

Затем создайте ссылку / пакет / что угодно для запуска программы и непосредственно выберите Java, который вы хотите запустить. то есть:

/java6/bin/java.exe MyApp.jar

Если вы используете Java 1.7.0_40+, вы, вероятно, сможете решить вашу проблему, используя наборы правил развертывания:

В обновлении 40 для Java 7 вводится новая функция под названием «Набор правил развертывания», предназначенная для решения проблемы безопасности и совместимости в апплетах браузера без влияния на обычные серверные программы Java, такие как Eclipse, Freemind или Tomcat. В частности, этот набор правил развертывания затрагивает два основных момента:

Возможность администратора настольного компьютера контролировать совместимость версий Java и выбор по умолчанию на рабочем столе конечного пользователя. Например, ваши пользователи могут использовать самые последние обновления безопасности для большинства апплетов браузера, но по-прежнему использовать старую Java 1.6 для этого одного унаследованного приложения, которое больше не поддерживается. Осведомленность конечного пользователя о том, кто создал приложение, и их взаимодействие по умолчанию (спрашивать, запускать или блокировать). Увидев реальную компанию или подписавшего, пользователь защищен от запуска кода кем-то, кого он не знает. Например, я бы доверял «Моему университету» или «Эрику Костлоу», но не «Неизвестному издателю» или кому-то еще, утверждающему, что я. Для получения дополнительной информации, пожалуйста, ознакомьтесь со статьей Oracle по наборам правил развертывания.

https://blogs.oracle.com/java-platform-group/entry/introducing_deployment_rule_sets

Понравилась статья? Поделить с друзьями:
  • Нет amd catalyst control center на windows 10
  • Несколько windows на одной флешке скачать торрент
  • Нет aero peek в windows 7
  • Несколько windows 10 на одном компьютере как убрать
  • Нет 144 гц в настройках windows