Поменять версию java mac os

Изменение версии Java по умолчанию на MacOS

В процессе работы с Java-проектами на MacOS, часто возникает необходимость использовать определенную версию Java Development Kit (JDK). В этом случае может потребоваться изменить версию Java по умолчанию на вашем компьютере.

Проблема

Предположим, что на компьютере установлено несколько версий JDK. Проект, над которым ведется работа, требует JDK версии 8, в то время как версия Java по умолчанию на компьютере — 11. Это может приводить к проблемам совместимости.

Решение

На MacOS, можно изменить версию Java по умолчанию с помощью команды export в терминале. Эта команда позволяет указать путь к нужной версии Java. Сначала необходимо узнать, какие версии JDK установлены на компьютере. Это можно сделать с помощью команды:

В ответ на эту команду, терминал выведет список установленных версий JDK. Выглядеть это будет примерно так:

Matching Java Virtual Machines (3): 11.0.1, x86_64: "Java SE 11.0.1" /Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home 1.8.0_191, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home 1.7.0_80, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home

Теперь, чтобы изменить версию Java по умолчанию, нужно использовать команду export :

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

В этом примере в качестве версии Java по умолчанию выбрана версия 1.8 (JDK 8).

Это изменение будет действовать только в текущей сессии терминала. Чтобы сделать его постоянным, необходимо добавить эту команду в файл .bash_profile или .zshrc (в зависимости от используемого оболочки):

echo 'export JAVA_HOME=`/usr/libexec/java_home -v 1.8`' >> ~/.bash_profile

Теперь при каждом запуске терминала версией Java по умолчанию будет JDK 8.

Читайте также:  dimensions

Источник

How To Switch Java Version On Mac

It provides the steps required to switch the current Java among the multiple versions installed on the Mac machine.

We might be required to install multiple versions of Java on the same Mac machine. Also, we can assign only one installation to the Java command. This tutorial provides the steps required to switch among the multiple versions of Java installed on the same Mac machine.

List Installed Java

We can check the highest version of Java installed on the system using the command as shown below.

# Show system default i.e. highest version of Java
/usr/libexec/java_home

# Output
/Library/Java/JavaVirtualMachines/jdk-11.0.7.jdk/Contents/Home

We can also check all the versions of Java installed on the system using the command as shown below.

# List installed JDKs
/usr/libexec/java_home -V

# List Output
Matching Java Virtual Machines (2):
11.0.7, x86_64: "Java SE 11.0.7" /Library/Java/JavaVirtualMachines/jdk-11.0.7.jdk/Contents/Home
1.8.0_251, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_251.jdk/Contents/Home

/Library/Java/JavaVirtualMachines/jdk-11.0.7.jdk/Contents/Home

The java_home command with argument -V lists all the Java versions installed on the system and shows the most recent or highest version at the top of the list. It also shows the most recent version or system default at the bottom of the list.

Switch Java (JDK)

This section provides the options to switch among the multiple versions of JDK installed on the Mac system.

# List installed JDKs
/usr/libexec/java_home -V

# List Output
Matching Java Virtual Machines (2):
11.0.7, x86_64: "Java SE 11.0.7" /Library/Java/JavaVirtualMachines/jdk-11.0.7.jdk/Contents/Home
1.8.0_251, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_251.jdk/Contents/Home

/Library/Java/JavaVirtualMachines/jdk-11.0.7.jdk/Contents/Home

# Switch active JDK
export JAVA_HOME=`/usr/libexec/java_home -v `

# Switch Example 1
export JAVA_HOME=`/usr/libexec/java_home -v 1.8.0_251`

# Check Active Java
java -version

# Version Check Output
java version "1.8.0_251"
Java(TM) SE Runtime Environment (build 1.8.0_251-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.251-b08, mixed mode)

# Switch Example 2
export JAVA_HOME=`/usr/libexec/java_home -v 11.0.7`

# Check Active Java
java -version

# Version Check Output
java version "11.0.7" 2020-04-14 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.7+8-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.7+8-LTS, mixed mode)

This switches the Java version for the active shell. If you close the terminal and again check the Java version by opening a new terminal, your changes won’t be reflected since the Mac system will pick the highest version by default. You can follow the next section to preserve the Java version and switch the Java to default.

Preserve Java Version

We can save the default version of Java to the ~/.bash_profile file and execute it to switch to the default version of Java.

# Create .bash_profile if not exist
touch ~/.bash_profile

# Open .bash_profile for editing
open -a TextEdit.app ~/.bash_profile

# Specify default Java
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_251.jdk/Contents/Home

# Save and close .bash_profile

This will preserve the default version of Java. Now close the terminal and open a new one.

# List Java Versions 
/usr/libexec/java_home -V

# List Output
Matching Java Virtual Machines (2):
11.0.7, x86_64: "Java SE 11.0.7" /Library/Java/JavaVirtualMachines/jdk-11.0.7.jdk/Contents/Home
1.8.0_251, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_251.jdk/Contents/Home

/Library/Java/JavaVirtualMachines/jdk-11.0.7.jdk/Contents/Home

# Test Active Java
java -version

# Active Java
java version "11.0.7" 2020-04-14 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.7+8-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.7+8-LTS, mixed mode)

The above-mentioned commands list all the JDKs installed on the system and defaults the active Java to the highest version installed on the system. Now we can switch to our preferred JDK by executing the .bash_profile script.

# Execute system preferences
source ~/.bash_profile

# Test Active Java
java -version

# Active Java
java version "1.8.0_251"
Java(TM) SE Runtime Environment (build 1.8.0_251-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.251-b08, mixed mode)

In this way, we can always switch to our preferred JDK by simply executing the .bash_profile script.

Notes: There is no way to set the default JDK on Mac system. It will simply pick the highest version installed on the system. Though, we can switch the active Java on the terminal using the .bash_profile script as shown above. The third-party solution jenv might be helpful in certain situations.

Disable Java

We can disable a specific version of Java by renaming its Info.plist file to Info.plist.disabled. This will prevent Mac to consider the Java version with Info.plist file renamed to Info.plist.disabled while getting the highest version installed on the system. It will still consider the highest version as the default Java.

The Info.plist location is similar to the examples shown below.

JDK 11.0.7 -> /Library/Java/JavaVirtualMachines/jdk-11.0.7.jdk/Contents/Info.plist

JDK 1.8.0_251 -> /Library/Java/JavaVirtualMachines/jdk1.8.0_251.jdk/Contents/Info.plist

If we rename Info.plist file of JDK 11.0.7 to Info.plist.disabled, Mac system will ignore it and use JDK 1.8.0_251 as the default JDK since it’s the next highest one installed on my system. It might differ on your system.

Summary

This tutorial provided the steps required to list the multiple versions of Java installed on the Mac system and switch the active Java. It also provided the steps required to persist the Java version.

Источник

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.

Setting default java version or JAVA_HOME
Follow below steps to make a particular java version as default or to switch among multiple java version on your Mac system.

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.

5. Now, to verify if the default java is changed, again type java -version and press return. Below is the output

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,

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 .

Java Concepts

  • Instance variables
  • Create object in 5 ways
  • Constructors with example
  • Constructor chaining
  • Access specifiers/modifiers
  • public static void main
  • Reading user input in java
  • Abstract class
  • Abstract method
  • Interfaces
  • Method Overloading
  • Method Overriding
  • this keyword
  • static keyword
  • Arrays
  • 2d arrays
  • switch-case statement
  • Ternary operator
  • Enhanced for loop
  • continue statement
  • break statement
  • Exception handling
  • throw and throws
  • Java try-with-resources
  • NullPointerException
  • IllegalStateException java
  • Inner classes
  • Marker interface
  • Serialization and deserialization in java
  • Convert nanoseconds to seconds
  • Get current directory path in 4 ways
  • Comparator interface
  • GET/POST request with HttpClient
  • Set default java version on Mac OS
  • Install openjdk on Mac OS from tar file
  • Math.random()
  • BufferedReader class to read text file and user input
  • Immutable class in java
  • boolean in java
  • Java StringBuffer class
  • Java scanner class
  • AutoCloseable interface in java

Источник

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