Mac os change java version

Change Java version on Mac

Today I had to downgrade the default java version on Mac because we did start a transition of an existing service. Last time I did install java 1.8 was quite some manual effort (ls.info/…/java-1-8-and-spring-4-0-3-migration/). This time I wanted to use the existing Mac OS capabilities.

  • Mac OSX version: 10.14.6
  • Brew version: 2.1.10
  • Java version: OpenJDK 11.0.2, x86_64

Downgrade to Java version 1.8

Installing java 1.8 worked best with

$ brew cask install adoptopenjdk/openjdk/adoptopenjdk8

That one installed java 1.8 however the system java version remained untouched.

$ java -version
openjdk version «11.0.2»

In order to set java 1.8 as default, I needed to find out which versions are installed:

$ /usr/libexec/java_home -V
Matching Java Virtual Machines (2):
11.0.2, x86_64: «OpenJDK 11.0.2»
/Library/. /openjdk-11.0.2.jdk/Contents/Home
1.8.0_222, x86_64:»AdoptOpenJDK 8″
/Library/. /adoptopenjdk-8.jdk/Contents/Home

With that, I could set the new default version (in my case as part of .zshrc setup):

export JAVA_HOME=`/usr/libexec/java_home -v 1.8.0_222`

Finally java -version returned as expected:

$ java -version
openjdk version «1.8.0_222»

Conclusion

Change default java version on Mac

$ brew cask install adoptopenjdk/openjdk/adoptopenjdk8

# which java versions installed
$ /usr/libexec/java_home -V
Matching Java Virtual Machines (2):
11.0.2, x86_64: «OpenJDK 11.0.2»
/Library/. /openjdk-11.0.2.jdk/Contents/Home
1.8.0_222, x86_64:»AdoptOpenJDK 8″
/Library/. /adoptopenjdk-8.jdk/Contents/Home

# set the new default version
export JAVA_HOME=`/usr/libexec/java_home -v 1.8.0_222`

11 Comments

Downgrade worked fine for my Mac Catalina. Thank you!

Источник

How to set default java version on Mac OS

It generally happens that there are multiple java versions installed on a Mac system but we want a specific version out of those to be set as default.
This is required so that if an application requiring java is executed, it will pick up the desired version to avoid any compatibility issues.
In this article, we will look at the steps to be taken on Mac OS to set a particular java version to be set as default by setting JAVA_HOME environment variable.

1. Open terminal window on Mac OS.
2. Type following command and press enter(or return).

You should see below output

Matching Java Virtual Machines (2):

15.0.1, x86_64: “OpenJDK 15.0.1” /Library/Java/JavaVirtualMachines/jdk-15.0.1.jdk/Contents/Home
11.0.2, x86_64: “OpenJDK 11.0.2” /Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home

This shows that the system has two java versions(first column) installed.
If you can not see the desired version here, then download it and install first.
Refer this guide to install openjdk from a tar file on Mac OS .
3. Now check the current default java version by using command java -version .
This will print

openjdk version “11.0.2” 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)

Current java version being used in 11.0.2. Suppose, we want to change it to 15.0.1.
4. Type following command and press return

export JAVA_HOME=`/usr/libexec/java_home -v 15.0.1`

This will set JAVA_HOME variable to version 15.0.1.

openjdk version “15.0.1” 2020-10-20
OpenJDK Runtime Environment (build 15.0.1+9-18)
OpenJDK 64-Bit Server VM (build 15.0.1+9-18, mixed mode, sharing)

Note that this will only change the default java for the current terminal session.
If you close the terminal and open a new one, you will still see the older java version as the default.
6. To make it permanent default, set JAVA_HOME in .bash_profile file.
In the terminal type,

Читайте также:  Как добавить новое сетевое подключение windows 10

This will open a file and you should see an entry for JAVA_HOME in this file as below

If you do not see any such entry, then add one.
Change the desired version of jdk as the per the output of command in Step 2 above.
Save the file. Default version of java is now updated.
You can check it by opening a new terminal window and verifying the output of java -version .

Источник

Learn Java by Examples

Spring

Persistence

Servlet

Other Libraries

Patterns

Databases

Android

JVM Languages

Tools

Tutorials

How do I set the default Java (JDK) version on Mac OS X?

In this post you will learn how to set the default JAVA_HOME in OS X when you have more than one JDK installed in your computer. First you need to run /usr/libexec/java_home -V command to get the list of installed JDK. The command will print out something like the following depending on the available JDK in your computer.

On my machine I have the following version of Java.

From the list above pick which version you want to be the default JDK. For example I will choose the 1.8.0_121 version to be my default JDK. To set it run the command below.

If the major version of the available JDK is unique you can just use the major version, like:

After setting the JAVA_HOME and you run the java -version command you will see that JDK 1.8 is the new default JDK in your computer.

The change above will only active in the current running shell. If you close or terminate the shell, next time you open the shell you will need to set it again. To make this change permanent you need to set it in your shell init file. For example if you are using bash then you can set the command in the .bash_profile . Add the following lines at the end of the file.

To activate this configuration right away your can run source .bash_profile . This command reads and executes the .bash_profile in the current shell.

Источник

Как установить или изменить версию Java (JDK) по умолчанию на OS X?

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

Первый запуск, /usr/libexec/java_home -V который выдаст что-то вроде следующего:

Выберите версию, которую вы хотите использовать по умолчанию ( 1.6.0_65-b14-462 для аргументов), затем:

или вы можете указать только основную версию, например:

Теперь, когда вы бежите, java -version вы увидите:

Добавить export JAVA_HOME… строку в файл инициализации вашей оболочки.

Для Баша (как утверждает антоних ):

Для рыбы (как заявлено ормурином)

Этот ответ является попыткой решить: как управлять java-версией в масштабе всей системы (не только в запущенной в данный момент оболочке), когда несколько версий JDK установлены для целей разработки на macOS El Capitan или более поздней (Sierra, High Sierra, Mojave) . Насколько я могу судить, ни один из текущих ответов не делает этого (*).

Как разработчик, я использую несколько JDK и хочу легко переключаться с одного на другой. Обычно у меня есть последняя стабильная версия для общего пользования и другие для тестов. Но я не хочу, чтобы система (например, когда я запускаю свою IDE) использовала последнюю версию «раннего доступа», которая у меня есть на данный момент. Я хочу контролировать систему по умолчанию, и она должна быть последней стабильной.

Читайте также:  Линукс минт смена раскладки клавиатуры

Следующий подход работает как минимум с Java 7-12 (ранний доступ на момент написания этой статьи), с Oracle JDK или OpenJDK (включая сборки AdoptOpenJDK, выпущенные после середины октября 2018 г. ).

Решение без сторонних инструментов:

  • оставить все JDK в их расположении по умолчанию, под /Library/Java/JavaVirtualMachines . Система выберет самую высокую версию по умолчанию.
  • Чтобы исключить выбор JDK по умолчанию, переименуйте его Contents/Info.plist в Info.plist.disabled . Этот JDK все еще можно использовать, когда $JAVA_HOME на него указывают, или явно указывать в сценарии или конфигурации. Это будет просто проигнорировано командой системы java .

Система запуска будет использовать JDK с самой высокой версией среди тех, которые имеют Info.plist файл.

При работе в оболочке с альтернативным JDK выберите свой метод среди существующих ответов ( jenv или пользовательских псевдонимов / сценариев /usr/libexec/java_home и т. Д.).

(*) Текущие ответы либо устарели (больше не действительны для macOS El Capitan или Sierra), либо относятся только к одному JDK, либо не затрагивают общесистемный аспект. Многие объясняют, как измениться $JAVA_HOME , но это влияет только на текущую оболочку и то, что запускается оттуда. Это не повлияет на приложение, запущенное из панели запуска ОС (если вы не измените нужный файл и не выйдете из системы / не авторизованы), что утомительно. То же самое для jenv, это круто и все такое, но, насколько я могу судить, оно просто меняет переменные окружения, поэтому оно имеет то же ограничение.

В дополнение к ответам, приведенным выше, я добавил следующие строки в мой .bash_profile (или .zshrc для MacOS 10.15+), что делает его очень удобным для переключения (включая комментарий @ elektromin для java 9):

После вставки выполните $ source .bash_profile

Я могу переключиться на Java 8, набрав следующее:

Маленькая рыбка на основе / usr / libexec / java_home

Если вы не используете fish, вы можете сделать что-то подобное в bash:

Затем, чтобы переключиться между Java сделать:

Это немного сложно, но попробуйте выполнить шаги, описанные в Установка Java на OS X 10.9 (Mavericks) . По сути, вам придется обновить свой псевдоним до java .

После установки JDK 1.7 вам нужно будет сделать sudo ln -snf , чтобы изменить ссылку на текущую java . Для этого откройте Терминал и введите команду:

Обратите внимание, что каталог jdk1.7.0_51.jdk может меняться в зависимости от установленной версии SDK.

Теперь вам нужно JAVA_HOME указать, где jdk_1.7.0_xx.jdk был установлен. Откройте снова Терминал и введите:

Вы можете добавить export JAVA_HOME строку выше в вашем .bashrc файле, чтобы иметь Java постоянно в вашем терминале

Использовать jenv — это простой способ.

1. установить jenv

3.Симлинк путь JDK

4.Все все готово

установить по умолчанию:

установить JDK, а не только JRE

TextEdit покажет вам пустую страницу, которую вы можете заполнить.

добавить в документ: export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home

(замените jdk1.8.0_144.jdk загруженной версией)

Используйте jenv, это как менеджер среды Java. Это супер легко использовать и чистить

Для Mac выполните следующие действия:

Установка: Если вы используете bash, выполните следующие действия:

Добавьте нужные версии JVM в jenv:

Проверьте установленные версии:

Установите версию Java, которую вы хотите использовать:

поместите это в ваш

/ .profile и используйте его в своем терминале, например setjdk 1.8 , setjdk 1.7 и setjdk 9 т. д. и т. д.

Если у вас нет, removeFromPath то это:

Четыре простых шага с использованием терминала для людей, которые используют процесс по умолчанию .. 🙂

echo $JAVA_HOME дает вам текущий дом Java. Например: /Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/

cd /Library/Java/JavaVirtualMachines/ перенесет вас в папку, где вы обычно устанавливаете jdks (это может отличаться для ваших машин)

  • ls показывает вам доступные папки ( как правило , это будет иметь номер версии, например: jdk1.8.0_191.jdk openjdk-11.0.2.jdk )
  • export JAVA_HOME=’/Library/Java/JavaVirtualMachines/openjdk-11.0.2.jdk/Contents/Home’ поменяю java домой ..
  • Читайте также:  Ноутбук lenovo z575 windows 10

    добавить следующую команду в

    macOS El Capitan или новее выберет более высокую версию JDK, доступную в /Library/Java/JavaVirtualMachines , так что для понижения версии вы можете переименовать файл Info.plist во что-то похожее, Info.plist.disabled чтобы ОС выбрала предыдущую версию.

    Если вы все еще не можете установить его. используя эту команду.

    экспорт JAVA_HOME = /usr/libexec/java_home -v 1.8

    тогда вы должны использовать это.

    экспорт JAVA_HOME = $(/usr/libexec/java_home -v 1.8)

    это обязательно сработает.

    Сначала выясните, где вы храните переменные среды.

    Шаги по настройке переменной среды: —

    1. Скачать JDK от JAVA
    2. установить его двойным щелчком

    Теперь настройте переменные окружения в вашем файле

    а. Для emacs.profile вы можете использовать эту ссылку или увидеть скриншот ниже

    б. Для настройки профиля ZSH —

    Все готово Теперь вы можете легко обновить или снизить версию JAVA.

    JDK Switch Script

    Я адаптировал ответ от @Alex выше и написал следующее, чтобы исправить код для Java 9.

    Переключиться на Java 8

    Переключиться на Java 9

    Вы можете добавить его в свой .bash_profile, чтобы установить версию по умолчанию.

    Если вы используете fish, и вы используете mac, и вы хотите переключаться между JDK, то ниже для меня работает на mac.

    Ответ @ kenglxn не сработал для меня, и я понял, что bcos не установил -g, который является глобальным!

    Поместите ниже в

    / .config / fish / config.fish

    Чтобы узнать, какую версию / минорную версию вы установили, вы можете сделать:

    Если у вас есть несколько версий, и вы хотите что-то запустить с использованием определенной версии, используйте этот пример:

    На основе ответа @markhellewell я создал несколько псевдонимов, которые сделают это за вас. Просто добавьте их в свой файл запуска оболочки

    Вот как я делаю это на моем Linux (Ubuntu / Mint mate) , я думаю, Mac может сделать это аналогичным образом.

    Установить и настроить

    шаги:

    • [Основное — часть]
    • Загрузите jdk ( файл .tgz ) вручную.
    • Распакуйте и переименуйте правильно, в нужном месте.
      например /mnt/star/program/java/jdk-1.8
    • Сделайте программную ссылку, которая будет изменена для переключения версии Java позже.
      например ln -s /mnt/star/program/java/jdk-1.8 /mnt/star/program/java/java
      Таким образом , /mnt/star/program/java/java это мягкая ссылка.
    • Установите JAVA_HOME в стартовом скрипте.
      Может использовать файл, как /etc/profile.d/eric.sh , или просто использовать

    /.bashrc .
    например JAVA_HOME=/mnt/star/program/java/java

  • Затем откройте новую оболочку bash. java -version должен напечатать версию Java.
  • [Больше версия — часть]
  • При необходимости загрузите и установите больше версий Java, как описано выше.
    например
    /mnt/star/program/java/jdk-11
  • [Переключатель — часть]
  • В

    /.bashrc , определить переменную для различных версий Java.
    например
    _E_JAVA_HOME_11=’/mnt/star/program/java/jdk-11′
    _E_JAVA_HOME_8=’/mnt/star/program/java/jdk-8′
    # dir of default version,
    _E_JAVA_HOME_D=$_E_JAVA_HOME_8
    В

    /.bashrc , определите команду для переключения версии Java.
    например
    ## switch java version,
    alias jv11=»rm $JAVA_HOME; ln -s $_E_JAVA_HOME_11 $JAVA_HOME»
    alias jv8=»rm $JAVA_HOME; ln -s $_E_JAVA_HOME_8 $JAVA_HOME»
    # default java version,
    alias jvd=»rm $JAVA_HOME; ln -s $_E_JAVA_HOME_D $JAVA_HOME»
    alias jv=»java -version»
    В терминале, source

    /.bashrc чтобы изменения вступили в силу.

  • Затем можно переключиться с помощью определенных команд.
  • Команды — сверху конфиг

    Команды:

    • jv11
      Переключиться на Java 11
    • jv8
      Переключиться на Java 8
    • jvd
      Переключиться на версию Java по умолчанию, которая обозначена как _E_JAVA_HOME_D определено выше.
    • jv
      Показать версию Java.

    Пример вывода:

    Механизм

    • Он переключается путем изменения программной ссылки, которая используется как JAVA_HOME .

    Советы

    На моей машине, когда я устанавливаю jdk вручную, я сохраняю минорную версию, затем делаю мягкую ссылку с основной версией, но без минорной версии.
    например,
    // это фактический каталог,
    jdk1.8.0_191

    // это мягкая ссылка на jdk1.8.0_191
    jdk-8

    // это мягкая ссылка на jdk-8 или jdk-11
    java

    Я определяю псевдоним команды

    /.bashrc , но определяю переменную в отдельном файле.
    Я использую

    /.eric_var для определения переменных, и

    /.bashrc будет его источником (например source $HOME/.eric_var ).

    Источник

    Оцените статью