OS XでデフォルトのJava(JDK)バージョンを設定または変更する方法


780

MacでJavaのデフォルトバージョンを変更するにはどうすればよいですか?


2
実行する/usr/libexec/java_homeと何がわかりますか?
Bart

2
/ usr / libexec / java_homeは/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Venkat

再起動する必要があるだけかもしれません。試しましたか?
Bart

はい、コンピュータと端末を再起動しました...変更はありません。
Venkat 2014

3
以下の@markhellewellからの投票数の多い回答を受け入れてもらえますか?それは私がそれをもう少し速く見つけるのを助けたでしょう、そしてそれはただ素晴らしいです。:)
タイタイ

回答:


1410

次の/usr/libexec/java_home -Vようなものを出力する最初の実行:

Matching Java Virtual Machines (3):
1.8.0_05, x86_64:   "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home
1.6.0_65-b14-462, x86_64:   "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
1.6.0_65-b14-462, i386: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home

1.6.0_65-b14-462次に、(引数のために)デフォルトにするバージョンを選択します。

export JAVA_HOME=`/usr/libexec/java_home -v 1.6.0_65-b14-462`

または、次のようにメジャーバージョンのみを指定することもできます。

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

実行java -versionすると、次のようになります。

java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-462-11M4609)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-462, mixed mode)

export JAVA_HOME…シェルのinitファイルに行を追加します。

Bashの場合(antonyhで述べられているように):

export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)

魚の場合(ormurinによる記述)

set -x JAVA_HOME (/usr/libexec/java_home -d64 -v1.8)

2
@ MattO'Brienこれは、使用しているシェル、および配置されている構成に依存するものです。そのため、完全なソリューションを提供することはできません…
markhellewell

11
それらは本当にexportラインをバッククォートしています
デビッド・ウェスト

6
これは私にはうまくいきませんでした。JAVA_HOME -Vランニングからのパスを取得し、この輸出JAVA_HOMEのように、exportコマンドにこれを追加= "/システム/ライブラリ/ Javaの/ JavaVirtualMachines / 1.6.0.jdk /コンテンツ/ホーム"
おでん

68
これはBash export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)で機能します-また、java_homeは部分一致を許可するため、最新バージョンがインストールされているため、完全版を含める必要はありません。これにより、更新が容易になります。
antonyh 2014

14
エクスポートに '`not' 'を使用していることを確認してください。
ブリザード2015年

409

この回答は対処するための試みです。macOSEl Capitan以降(Sierra、High Sierra、Mojave)に開発目的でJDKの複数のバージョンがインストールされている場合に、システム全体(現在実行中のシェルだけでなく)のJavaバージョン制御する方法です。私の知る限りでは、現在の回答はどれもそれを行いません(*)。

開発者として、私はいくつかのJDKを使用しており、一方から他方に簡単に切り替えたいです。通常、私は最新の安定したものを一般的な使用のために、他のものをテストのために持っています。しかし、私はシステム(たとえば、IDEを起動したとき)が、現在持っている最新の「早期アクセス」バージョンを使用したくありません。システムのデフォルトを制御したいのですが、それは最新の安定版でなければなりません。

次のアプローチは、少なくともJava 7から12(この記事の執筆時点では早期アクセス)、およびOracle JDKまたはOpenJDK2018年10月中旬以降に作成されたAdoptOpenJDKによるビルドを含む)で機能します

サードパーティツールなしのソリューション:

  • すべてのJDKをの下のデフォルトの場所のままにし/Library/Java/JavaVirtualMachinesます。システムはデフォルトで最も高いバージョンを選択します。
  • JDKがデフォルトで選択されないようにするには、名前をに変更Contents/Info.plistInfo.plist.disabledます。そのJDKは$JAVA_HOME、それを指すとき、またはスクリプトまたは構成で明示的に参照されるときにも引き続き使用できます。システムのjavaコマンドでは単に無視されます。

システムランチャーは、Info.plistファイルがあるものの中で最も高いバージョンのJDKを使用します。

代替JDKを使用してシェルで作業するときは、既存の回答(jenv、またはの周りのカスタムエイリアス/スクリプト/usr/libexec/java_homeなど)からメソッドを選択します。


この要点の調査の詳細。


(*)現在の回答は廃止されている(macOS El CapitanまたはSierraでは無効)か、単一のJDKのみに対応するか、システム全体の側面に対応していません。多くは変更方法を説明しています$JAVA_HOMEが、これは現在のシェルとそこから起動されるものにのみ影響します。OSランチャーから起動したアプリケーションには影響しません(適切なファイルとログアウト/ログインを変更しない限り、面倒です)。jenvについても同じですが、すべてクールですが、私が知る限り、単に環境変数を変更するだけなので、同じ制限があります。


16
システム全体のJavaバージョン、つまりEclipseが使用するバージョンを設定できjenvないため、これが私が探していた答えJAVA_HOMEです。
Giovanni Lovato 2017年

3
@Rodrigoはい、「調査の詳細」(上記にリンク)で述べたように、「JDKをインストールすると、も上書きされます/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/。どうやら、これは新しい[設定]ペインが起動するものです-これが私のソリューションで見つけた唯一の例外です: Thingは引き続きJDK9(私がインストールした最新のもの)を使用しますが、他のJavaアプリケーションは使用しません。
Hugues

2
Javaバージョンは/ライブラリ/ Java / JavaVirtualMachinesにあり、上記の優れたソリューションはそのコンテキスト内にあることに注意してください。
Andrew Kostka

3
まさに、これがこの質問に最適で最も機能的なソリューションです。残念ながらそうです。
Aerodynamika

3
この答えには感謝しきれません。このOSランチャーからの起動アプリケーションの修正。
Karthic Raghupathi

248

上記の回答に加えて、次の行を私の.bash_profile(または.zshrcMacOS 10.15以降の場合)に入れます。これにより、切り替えが非常に便利になります(Java 9に対する@elektrominのコメントを含む)。

alias j12="export JAVA_HOME=`/usr/libexec/java_home -v 12`; java -version"
alias j11="export JAVA_HOME=`/usr/libexec/java_home -v 11`; java -version"
alias j10="export JAVA_HOME=`/usr/libexec/java_home -v 10`; java -version"
alias j9="export JAVA_HOME=`/usr/libexec/java_home -v 9`; java -version"
alias j8="export JAVA_HOME=`/usr/libexec/java_home -v 1.8`; java -version"
alias j7="export JAVA_HOME=`/usr/libexec/java_home -v 1.7`; java -version"

挿入後、実行 $ source .bash_profile

次のように入力して、Java 8に切り替えることができます。

$ j8
java version "1.8.0_102"
Java(TM) SE Runtime Environment (build 1.8.0_102-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)

5
:これは、Java 9の構文です alias j9="export JAVA_HOME=`/usr/libexec/java_home -v 9`; java -version"
elektromin

3
素早い切り替えのための素晴らしいシンプルなエイリアス。
gbonetti

使用alias j10="export JAVA_HOME=`/usr/libexec/java_home`; java -version"してから入力j10すると、現在のバージョンのJava(私の場合はJava 10)に戻すことができます
intagli

nvmJavaのバージョンを切り替えるのと同じようなcliツールを作成しますが、頭字語はjvmすでに別の意味を持っています:)
Andy

ソーシングとき、私はこのエラーを取得: /Users/me/.zshrc:8: permission denied: /Library/Java/JavaVirtualMachines/openjdk-12.jdk/Contents/Home
cosbor11

56

/ usr / libexec / java_homeに基づく小さな魚機能

function jhome
    set JAVA_HOME (/usr/libexec/java_home $argv)
    echo "JAVA_HOME:" $JAVA_HOME
    echo "java -version:"
    java -version
end

魚を使用しない場合は、bashで同様のことができます。

#!/bin/bash

jhome () {
  export JAVA_HOME=`/usr/libexec/java_home $@`
  echo "JAVA_HOME:" $JAVA_HOME
  echo "java -version:"
  java -version
}

次に、Javaを切り替えるには、次のようにします。

$> jhome           #switches to latest java
$> jhome -v 1.7    #switches to java 1.7
$> jhome -v 1.6    #switches to java 1.6

ref:https : //gist.github.com/kenglxn/1843d552dff4d4233271


1
これは、特定のターミナルセッションでのみ変更されます。これを更新してシステム全体を変更する方法はありますか?
ENG618 2016年

1
関数のexport JAVA_HOME=(/usr/libexec/java_home $argv)2行目の代わりに、私は書く必要がありましたjhome
Daniel AA Pelsmaeker

32

これは少しトリッキーですが、Installing Java on OS X 10.9(Mavericks)で説明されている手順に従ってください。基本的に、エイリアスをに更新する必要がありますjava

ステップバイステップ:

JDK 1.7をインストールした後sudo ln -snf、リンクをcurrentに変更するためにを実行する必要がありますjava。これを行うには、ターミナルを開いて次のコマンドを発行します。

sudo ln -nsf /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents \
/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK

jdk1.7.0_51.jdkインストールしたSDKのバージョンによっては、ディレクトリが変わる場合があります。

次に、がインストールされJAVA_HOMEた場所を指すように設定する必要がありますjdk_1.7.0_xx.jdk。ターミナルを再度開き、次のように入力します。

export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home"

export JAVA_HOME上記の行を.bashrcファイルに追加して、Javaを永続的にターミナルに含めることができます


1
JAVA_HOME変数を設定するにはどうすればよいですか?私が設定した特定の場所はありますか?
Venkat 2014

JAVA_HOMEはどこにエクスポートしますか?それはどこに保存されますか?
ベンカット2014

1
答えを更新しました。インストールしたSDKのバージョンを知っていますか?フォルダー名にはSDKのバージョン番号が使用されるため、上記のコマンドは少し変更される可能性があります。
Trein 2014

私は最新のものをインストールし、私はそれが51だと思う
ヴェンカト

変数JAVA_HOMEは現在のターミナルセッションでエクスポートされます。.bashrc必要に応じて追加できます。コマンドを最新バージョンに適合させます。
Trein 2014

32

jenvを使用すると簡単です。

1. jenvをインストールする

    curl -s get.jenv.io | バッシュ

2. config jenv

    cd〜/ .jenv / candidates /
    mkdir java
    CD Java
    mkdir 1.7
    mkdir 1.8

3. jdkパスのシンボリックリンク

    ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bin〜/ .jenv / candidates / java / 1.7
    ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin〜/ .jenv / candidates / java / 1.8

4.これで準備は完了です

スイッチコマンド:

jenvはJava 1.8を使用します

デフォルトに設定:

jenvデフォルトJava 1.7


クリーンで素敵なソリューション。
風変わりな

「jenv use java 1.8」の代わりに、「jenv shell 1.8」を使用する必要がありました。「シェル」は、必要に応じて「グローバル」または「ローカル」にすることもできます。
Steve Gelman

1
jenvは、機能する場合に適しています。ただし、「/ usr / libexec / java_home -V」コマンドを実行することで明らかなように、使用するデフォルトのJavaバージョンは「実際には」変更されないため、JAVA_HOMEのみを使用することをお勧めします。これにより、Eclipseなどの一部のアプリケーションで奇妙な問題が発生します。
サイモン2018年

それに加えて、私の偏執狂的な部分は、何かを丸めてバッシングすることを勧めません。サイトが信頼できると思っていても、誰もハッキングできないことを保証することはできません。OSのパッケージマネージャーを使用します。
Aleksandr Kravets 2018

その情報は古くなっています。公式ドキュメントまたは詳細な手順を確認してください。
fabianopinto 2018

28

JREだけでなくJDKをインストールする

/usr/libexec/java_home -v 1.8

与える

/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home

touch .bash_profile

open -a TextEdit.app .bash_profile

TextEditはあなたが記入できる空白のページを表示します。

ドキュメントに追加: export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home

ターミナルで:

export JAVA_HOME="$(/usr/libexec/java_home -v 1.8)"

コマンドを試してください:

javac -version

出力する必要があります:

javac 1.8.0_111

26

tl; dr

次の行を追加します。

export JAVA_HOME='/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home'

ファイルへ

~/.bash_profile

(jdk1.8.0_144.jdkをダウンロードしたバージョンに置き換えます)

その後 source ~/.bash_profile


22

jenvを使用してください。これはJava環境マネージャーのようなものです。とても使いやすく、きれいです

Macの場合、次の手順に従います。

brew install jenv

git clone https://github.com/gcuisinier/jenv.git ~/.jenv

インストール:bashを使用している場合は、次の手順に従います。

$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile

echo 'eval "$(jenv init -)"' >> ~/.bash_profile

$ exec $SHELL -l

必要なバージョンのJVMをjenvに追加します。

jenv add /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

jenv add /System/Library/Java/JavaVirtualMachines/1.8.0.jdk/Contents/Home

インストールされているバージョンを確認します。

jenv versions

使用するJavaバージョンを設定します。

jenv global oracle64-1.6.0

これは私にとって完璧に働きました、ありがとう!
フェルナンドガブリエリ

私は同様のツールを使用しています:sdkman.io/usage-手動のエイリアスなどよりもはるかに優れたアプローチ
SathOkh

12
function setjdk() {
  if [ $# -ne 0 ]; then
    removeFromPath '/System/Library/Frameworks/JavaVM.framework/Home/bin'
    if [ -n "${JAVA_HOME+x}" ]; then
      removeFromPath $JAVA_HOME
    fi
    export JAVA_HOME=`/usr/libexec/java_home -v $@`
    export PATH=$JAVA_HOME/bin:$PATH
  fi
}

あなたの〜/ .profileにでこれを入れて、そのようなあなたの端末で使用 setjdk 1.8setjdk 1.7setjdk 9などなど...

あなたが持っていないならremoveFromPath、それは:

function removeFromPath() { export PATH=$(echo $PATH | sed -E -e "s;:$1;;" -e "s;$1:?;;") }


12

デフォルトのプロセスを使用する人のためのターミナルを使用した4つの簡単なステップ.. :)

  1. echo $JAVA_HOME現在のjavaホームを提供します。たとえば:/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/

  2. cd /Library/Java/JavaVirtualMachines/ uが通常jdksをインストールするフォルダに移動します(マシンによって異なる場合があります)

  3. lsショーあなた可能なフォルダ(通常は、それは例えばのために、バージョン番号を持つことになります。jdk1.8.0_191.jdk openjdk-11.0.2.jdk
  4. export JAVA_HOME='/Library/Java/JavaVirtualMachines/openjdk-11.0.2.jdk/Contents/Home' Javaホームを変更します。

8

次のコマンドを~/.zshenvファイルに追加します

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

8

MacOSのエル・キャピタン以降は、JDK利用可能で、より高いバージョンを選択します/Library/Java/JavaVirtualMachinesので、ダウングレードするために、あなたはファイル名を変更することがあり、Info.plistのような何か他のものにInfo.plist.disabledOSが以前のバージョンを選択するように。


への最も簡単な方法(:ありがとう
Satheesh Srinivasan

6

Appleの公式java_home(1)manページから

**USAGE**

   /usr/libexec/java_home  helps  users  set a $JAVA_HOME in their login rc files, or provides a way for
   command-line Java tools to use the most appropriate JVM which can satisfy a minimum version or archi-
   tecture  requirement.  The --exec argument can invoke tools in the selected $JAVA_HOME/bin directory,
   which is useful for starting Java command-line tools from launchd plists without hardcoding the  full
   path to the Java command-line tool.

   Usage for bash-style shells:
          $ export JAVA_HOME=`/usr/libexec/java_home`

   Usage for csh-style shells:
          % setenv JAVA_HOME `/usr/libexec/java_home`

6

それでもuが設定できない場合。このコマンドを使用します。

JAVA_HOME =をエクスポートする/usr/libexec/java_home -v 1.8

次に、これを使用する必要があります。

JAVA_HOME =をエクスポートする$(/usr/libexec/java_home -v 1.8)

それはきっとうまくいくでしょう。


6

まず、環境変数をどこに保存しますか?

  1. emacs
  2. bash_profile
  3. zshrcファイル

環境変数を設定する手順:-

  1. JAVAからjdkをダウンロードする
  2. ダブルクリックでインストール
  3. ファイルに環境変数を設定します

    a。emacs.profileあなたは、この使用することができますリンクを以下のスクリーンショットを参照してください

ここに画像の説明を入力してください

b。ZSHプロファイル設定の場合-

1. export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home

2. source ~/.zshrc - Restart zshrc to reflect the changes.

3. echo $JAVA_HOME - make sure path is set up properly 
   ----> /Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home

4. java -version 

   -->  java version "1.8.0_112"  Java(TM) SE Runtime Environment (build 1.8.0_112-b16)Java HotSpot(TM) 64-Bit Server VM (build 25.112-b16, mixed mode)

すべての設定これで、JAVAバージョンを簡単にアップグレードまたはデグレードできます。


5

JDK切り替えスクリプト

上記の@Alexからの回答を採用し、Java 9のコードを修正するために以下を作成しました。

$ cat ~/.jdk
#!/bin/bash

#list available jdks
alias jdks="/usr/libexec/java_home -V"
# jdk version switching - e.g. `jdk 6` will switch to version 1.6
function jdk() {
  echo "Switching java version $1";

  requestedVersion=$1
  oldStyleVersion=8
  # Set the version
  if [ $requestedVersion -gt $oldStyleVersion ]; then
    export JAVA_HOME=$(/usr/libexec/java_home -v $1);
  else
    export JAVA_HOME=`/usr/libexec/java_home -v 1.$1`;
  fi

  echo "Setting JAVA_HOME=$JAVA_HOME"

  which java
  java -version;
}

Java 8に切り替え

$ jdk 8
Switching java version 8
Setting JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home
/usr/bin/java
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

Java 9に切り替え

$ jdk 9
Switching java version 9
Setting JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home
/usr/bin/java
java version "9.0.1"
Java(TM) SE Runtime Environment (build 9.0.1+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)

4

これを.bash_profileに追加して、デフォルトでバージョンを設定することができます。

//Open bash profile
open ~/.bash_profile

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

// run bash profile
source ~/.bash_profile

ありがとう!注意点として、 `マークを含める必要があります。そして明らかに、1.8を必要なバージョンに置き換えます。私の場合は13.0.2
Jamie S

3

fishを使用していて、macを使用していて、JDKを切り替えられるようにしたい場合は、macで以下を使用できます。

@kenglxnの答えがうまくいかず、bcosがグローバルな-gを設定していないことがわかりました!

〜/ .config / fish / config.fishの下に配置します

alias j8="jhome  -v 1.8.0_162"
alias j9="jhome  -v 9.0.1"

function jhome
    set -g -x JAVA_HOME (/usr/libexec/java_home $argv)
    echo "JAVA_HOME:" $JAVA_HOME
    echo "java -version:"
    java -version
end

funcsave jhome

インストールしたバージョン/マイナーバージョンを確認するには、次のようにします。

/usr/libexec/java_home -V                                                                              579ms  Wed 14 Feb 11:44:01 2018
Matching Java Virtual Machines (3):
    9.0.1, x86_64:  "Java SE 9.0.1" /Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home
    1.8.0_162, x86_64:  "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home
    1.8.0_121, x86_64:  "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home

2

複数のバージョンがあり、特定のバージョンを使用して何かを実行したい場合は、次の例を使用します。

/usr/libexec/java_home -v 1.7.0_75 --exec java -jar you-file.jar

2

@markhellewellの回答に基づいて、これを行うエイリアス関数をいくつか作成しました。これらをシェル起動ファイルに追加するだけです

#list available jdks
alias jdks="/usr/libexec/java_home -V"
# jdk version switching - e.g. `jdk 6` will switch to version 1.6
function jdk() { 
  echo "Switching java version"; 
  export JAVA_HOME=`/usr/libexec/java_home -v 1.$1`; 
  java -version; 
}

https://gist.github.com/Noyabronok/0a90e1f3c52d1aaa941013d3caa8d0e4


2

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 -versionJavaバージョンを出力する必要があります。
  • [その他のバージョン-一部]
  • 上記の手順と同様に、必要に応じて追加の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
    _E_JAVA_HOME_D上記で定義され ているデフォルトのJavaバージョンに切り替えます。
  • jv
    Javaのバージョンを表示します。

出力例:

eric@eric-pc:~$ jv
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

eric@eric-pc:~$ jv11
eric@eric-pc:~$ jv
java version "11.0.1" 2018-10-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.1+13-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.1+13-LTS, mixed mode)

eric@eric-pc:~$ jvd
eric@eric-pc:~$ jv
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

eric@eric-pc:~$ 

機構

  • として使用されるソフトリンクを変更することで切り替え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


1

別にインストールされたJDKをのリストに含める簡単な方法は、/usr/libexec/java_home -V次のようにディレクトリをシンボリックリンクすることです。

sudo ln -s path/to/jdk /Library/Java/JavaVirtualMachines/jdk-[some-identifier].jdk

たとえば、Android Studioに含まれているJDK(執筆時点では1.8.0_152)を登録するには、次のコマンドを使用します。

sudo ln -s /Applications/Android\ Studio.app/Contents/jre/jdk /Library/Java/JavaVirtualMachines/jdk-android-studio.jdk

これでjava_homeJDKがリストされ、Matching Java Virtual Machines上記のように選択できます。


1

私はローカルターミナルのためにそれをしました

export JAVA_8_HOME=(/Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Home/)
export JAVA_13_HOME=(/Library/Java/JavaVirtualMachines/jdk-13.0.1.jdk/Contents/Home/)

alias java8='export JAVA_HOME=$JAVA_8_HOME; alias java="$JAVA_8_HOME/bin/java"; $JAVA_8_HOME/bin/java -version'
alias java13='export JAVA_HOME=$JAVA_13_HOME; alias java="$JAVA_13_HOME/bin/java"; $JAVA_13_HOME/bin/java -version'

export JAVA_HOME=$JAVA_13_HOME


-6

あまりに簡単な解決策:なんという頭痛の種でも、これは私にとってはうまくいく迅速で簡単な解決策でした。

Mac OS Sierraバージョン10.12.13

  1. ショートカットキーを使用します。CMD+ SHIFT + G-「/ライブラリ/」と入力します

  2. JAVAフォルダーを見つける

  3. Javaフォルダを右クリック=ゴミ箱に移動(パスワードが必要)

  4. インストール:Java SE開発キット8 jdk-8u131-macosx-x64.dmg | JavaScript SDKをダウンロード

  5. 新しいJAVAフォルダーが/ LIBRARY /に表示されることを確認します
  6. Eclipseをインストールする| Java開発者向けのEclipse IDEをインストールする
  7. ブーム完了
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.