Javaは、最新バージョンのmacOSのオプションパッケージです。
まだインストールされると、 Java_HOME 環境変数は のように正しく設定されていません 。
Javaオプションパッケージ または /またはOracle JDK がインストールされている場合、 〜/ .bash_profile ファイルに次の行のいずれかを追加すると、それに応じて環境変数が設定されます。
export Java_HOME="$(/usr/libexec/Java_home -v 1.6)"
or
export Java_HOME="$(/usr/libexec/Java_home -v 1.7)"
or
export Java_HOME="$(/usr/libexec/Java_home -v 1.8)"
更新:Jilles van Gurpresponse に基づく -v フラグを追加.
/usr/libexec/Java_home
はディレクトリではなく実行可能ファイルです。現在設定されているJava_HOMEを出力し、実際には変更しません。これがJava Preferencesアプリの目的です。私の場合はこれが壊れているように見え、実際にはJVMを正しく変更しません。それは1.7 JVMをリストしますが、私は実際に/usr/libexec/Java_home
の出力を変えることなしにそこに欲しいもの全てをトグル/アントグル&ドラッグアンドドロップすることができます。
LionにOracleから1.7.0 u6をインストールし、それを環境設定のデフォルトとして設定した後でも、Apple 1.6 Javaホームを返しました。私にとって実際に機能する唯一の修正は、手動でJava_HOMEを設定することです。
export Java_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_06.jdk/Contents/Home/
少なくともこのようにコマンドラインから実行すると、1.7が使用されます。 /usr/libexec/Java_home
はまだ1.6を主張しています。
更新 : OSXでのコマンドラインからのJavaの理解 に、これがどのように機能するかについてのより良い説明があります。
export Java_HOME=`/usr/libexec/Java_home -v 1.7`
それを行う方法です。注意してください、これを1.8に更新しても問題ありません。
私にとっては、Mountain Lion 10.8.2、最も投票された解決策はうまくいきません。私はOracleを介してjdk 1.7をインストールし、自作のmavenを使用しました。
私の解決策は私も自作からインストールしたhadoopのhadoop-env.shファイルからです。以下の文章を〜/ .bash_profileに追加しても動作します。
export Java_HOME="$(/usr/libexec/Java_home)"
このソリューションは、OracleからインストールされたJava 1.8を搭載したOS X Yosemiteでも機能します。
上記の答えのどれも私を助けませんでした。私はすべての答えが古いOS X
用であると思います
OS X Yosemite 10.10の場合は、次の手順に従います。
お気に入りのテキストエディタを使って開きます:~/.bash_profile
//This command will open the file using vim
$ vim ~/.bash_profile
ファイルに次の行を追加して保存します(:の後にvimの場合は "x"が付きます)。
export Java_HOME=$(/usr/libexec/Java_home)
次に、端末で次の2つのコマンドを入力して出力を確認します。
$ source ~/.bash_profile
$ echo $Java_HOME
2行目で、.bash_profile
ファイルの内容を更新しています。
これはAmazonのEC2ツールではうまくいきませんでした。なぜなら、それはbin/Java
の下にJava_HOME
などを期待するからです。 /System/Library/Frameworks/JavaVM.framework/Home
は動作しました。
Java 9といくつかのきちんとした別名のためのアップデート。
.bash_profile
内:
export Java_HOME8=`/usr/libexec/Java_home --version 1.8`
export Java_HOME9=`/usr/libexec/Java_home --version 9`
最新バージョンでは9
であり1.9
ではないことに注意してください。
アクティブなJavaを設定します。
export Java_HOME=$Java_HOME8
export PATH=$Java_HOME/bin:$PATH
異なるバージョンを切り替えるための追加のエイリアスがいくつかあります。
alias j8='export Java_HOME=$Java_HOME8; export PATH=$Java_HOME/bin:$PATH'
alias j9='export Java_HOME=$Java_HOME9; export PATH=$Java_HOME/bin:$PATH'
端末でテストします。
%j8 %Java -version Javaバージョン "1.8.0_121" Java(TM)SEランタイム環境(ビルド1.8.0_121-b13) Java HotSpot(TM)64ビットサーバーVM(ビルド25.121-b13、混合モード) %j9 %Java -version Javaバージョン "9" Java(TM)SEランタイム環境(ビルド9 + 181) Java HotSpot(TM)64ビットサーバーVM(ビルド9 + 181、混合モード)
編集:Java 10用のアップデート
export Java_HOME10 = `/ usr/libexec/Java_home --version 10` alias j10 = 'export Java_HOME = $ Java_HOME10; export PATH = $ Java_HOME/bin:$ PATH '
編集:Java 11用のアップデート
export Java_HOME10 = `/ usr/libexec/Java_home --version 11` alias j11 = 'export Java_HOME = $ Java_HOME11; export PATH = $ Java_HOME/bin:$ PATH '
OS Xでは、次のことができます。
export Java_HOME=`/System/Library/Frameworks/JavaVM.framework/Versions/Current/commands/Java_home`
Mac OS X Lionでは、visualgcを実行するように設定するために、次のものを使用しました。
export Java_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home
次は私のために働いた。私はJava 8がインストールされたOSX Yosemite上でZSHを使っています。
次のコマンド/usr/libexec/Java_home
は、JDKホームへのパスを生成します。
/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home
あなたの~/.zshrc
に、
export Java_HOME = "/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home"
1.7.0_21-b12などの新しいOracle JVMは、ここにインストールされるようです。
/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
より良い(よりアップグレード可能な)方法は以下を使うことです。
/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home
Homeの下にbin
があるため、これはAWSでも機能するはずです。
macOS Mojave 10.14.1およびJava 11.0.1の場合、プロファイルを次のように設定します。
export Java_HOME=$(/usr/libexec/Java_home)
確認のためにこれを端末にキー入力します。
$Java_HOME/bin/Java -version
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)
私のアプローチは:
.bashrc
export Java6_HOME=`/usr/libexec/Java_home -v 1.6`
export Java7_HOME=`/usr/libexec/Java_home -v 1.7`
export Java_HOME=$Java6_HOME
# -- optional
# export PATH=$Java_HOME/bin:$PATH
これにより、J6とJ7を簡単に切り替えることができます。
私は私のMacbook airの正確なパスにそれを明示的に設定しなければならなかった。
手順は次のとおりです。
echo $Java_HOME
を試してみて(設定されていればパスを表示するでしょう)、そうでなければSudo find /usr/ -name *jdk
を使って検索してみてくださいSudo nano ~/.bash_profile
でBash pを編集しますexport Java_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home
echo $Java_HOME
を使用してJava_HomeをチェックしてくださいJava 8搭載のMacbook AirでMACOS MOJAVE - 10.14.2(18C54)を実行しています。
Mac OS X 10.9の場合、Oracleから最新バージョンのJREをインストールし、次にJava_HOMEを/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Homeに再設定しました。
私はもっと良い方法があると確信していますが、私を立ち上げて走らせました。
hughsmac:〜hbrien $ echo $ Java_HOME /ライブラリ/ Java/Java仮想マシン/ jdk1.7.0_45.jdk /コンテンツ/ホーム
OSX Yosemite、ZSH、およびJava SE Runtime Environment 8では、次のことが必要でした。
$ Sudo ln -s /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands /System/Library/Frameworks/JavaVM.framework/Versions/Current/bin
そして〜/ .zshrcでJava_HOMEをexport Java_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/Current"
に変更します。
私のMac OSをアップグレードした後に同じ問題が発生し、次のように動作しました。
cmd> vi〜/ .bash_profile
Java_HOMEの行を追加/更新します。export Java_HOME = "/ Library/Java/JavaVirtualMachines/jdk1.7.0_15.jdk/Contents/Home"
cmd> source〜/ .bash_profileまたは新しい端末を開く
Jdkのバージョンは異なるかもしれないと思うので、/ Library/Java/JavaVirtualMachines /にあるバージョンを使用してください。
Mac OS X(Yosemite)で複数のバージョンのJDKを使用する必要がある場合は、それらを自動的に切り替えるためのスクリプトを追加すると便利です。
〜/ .bash_profile を編集して、次の行を追加してください。
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
}
function removeFromPath() {
export PATH=$(echo $PATH | sed -E -e "s;:$1;;" -e "s;$1:?;;")
}
setjdk 1.7
このスクリプトが実行するのは、最初に _ path _ にある他のJDKバージョンを削除して、それらが新しいJDKバージョンに干渉しないようにすることです。それから /usr/libexec/Java_home を賢く使用します。これはインストールされているJDKのバージョンを一覧表示するコマンドです。 -v 引数は、 Java_home に、指定されたバージョンのJDKのパス(例:1.7)を返すように指示します。また、 _ path _ を、新しく見つかった Java_HOME ディレクトリのbinディレクトリを指すように更新します。最後に、単純に関数を実行することができます
setjdk 1.7
これは1.7ブランチの最新のインストール済みJDKバージョンを選択します。特定のバージョンを選択するには、単に実行することができます
setjdk 1.7.0_51
代わりに。バージョンの選択方法についての詳細は、 /usr/libexec/Java_home -V を実行してください。
P.S保存後は source〜/ .bash_profile を忘れないでください。
Mac Yosemiteの場合、
JDK 1.7.0_xxが使用しています
$ ls -ltar /usr/bin/Java
/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/Java
Java_HOME
/Library/Java/JavaVirtualMachines/jdk1.7.0_xx.jdk/Contents/Home
netbeans.conf
ファイルに1.8 jdkバージョンのJava_homeを設定するだけです。
/Applications/NetBeans/NetBeans 8.2.app/Contents/Resources/NetBeans/etc/netbeans.conf
コメント解除行:
netbeans_jdkhome="path/to/jdk"
そして私の場合では、あなたの1.8 JDKへのパスを設定します。
netbeans_jdkhome="/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home"
このアプローチはあなたがMac OS上でいくつかのJDKバージョンを持つことを可能にします
Mac上のFishターミナルユーザー(Linuxでも利用できると思います)の場合、これは機能するはずです。
set -Ux Java_8 (/usr/libexec/Java_home --version 1.8)
set -Ux Java_12 (/usr/libexec/Java_home --version 12)
set -Ux Java_HOME $Java_8 //or whichever version you want as default