シェルスクリプトを使用して環境を設定する多くのJavaアプリケーションは、正しいバージョンのJavaの起動、JRE JARの検索などのためにJava_HOME
環境変数を使用します。
OSX 10.6では、次のパスがこの変数に有効であるようです
/Library/Java/Home
/System/Library/Frameworks/JavaVM.framework/Home
/System/Library/Frameworks/JavaVM.framework/Versions/Current
これらのうちのいくつかは実際の現在のVMへのシンボリックリンクです(Java環境設定ペインで定義されているように)。
しかし、どちらを使うべきか、それともどれを使っても大丈夫でしょうか。
Snow Leopardにはまだ/usr/libexec/Java_home
がありますか? 10.5では、私はJava_HOME
をそのコマンドの出力に設定しました。これはあなたのJava設定で指定されたJavaパスをあなたに与えるでしょう。これは、この変数を設定する.bashrc
ファイルからの抜粋です。
export Java_HOME=$(/usr/libexec/Java_home)
私はそのテクニックに関して何の問題も経験していません。
ときどき、Java_HOME
の値を以前のバージョンのJavaに変更する必要があります。たとえば、私が管理しているプログラムの1つでは、OS X上で32ビットのJava 5が必要です。そのため、そのプログラムを使用するときは、次のコマンドを実行してJava_HOME
を設定します。
export Java_HOME=$(/usr/libexec/Java_home -v 1.5)
あなたのパスにJava_home
がない人のために、これをこのように追加してください。
Sudo ln -s /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/Java_home /usr/libexec/Java_home
また、JDKを反映するようにPATHを設定するのも面白いです。 Java_HOMEを追加した後( 'mipadi'で引用されている例で実行できます):
export Java_HOME=$(/usr/libexec/Java_home)
〜/ .profileにも追加:
export PATH=${Java_HOME}/bin:$PATH
PS :OSXの場合、私は一般的にHOMEディレクトリで.bashrcの代わりに.profileを使用します。
私はMAC OS X(Sierra) 10.12.2を持っています。
次の手順に従って、Java_HOMEをReact Native(Androidアプリ用)に設定します。
ターミナルを開きます(Command + R、Terminalと入力し、Enterキーを押します)。
以下の行を〜/ .bash_profileに追加します。 export Java_HOME=$(/usr/libexec/Java_home)
次のコマンドを実行してください。 source ~/.bash_profile
次のコマンドを入力して、Java_HOMEの正確な値を確認できます。 echo $Java_HOME
返される値(出力)は以下のようになります。 /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home
以上です。
現在、Javaは/Library/Java/JavaVirtualMachines
にインストールされているようです。
私はMac OS 10.6.8を使っています
私にとって最も簡単な解決策は、単純に
$ export Java_HOME=$(/usr/libexec/Java_home)
うまくいくかどうかをテストするには、
$ echo $Java_HOME
それが示している
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
またテストすることができます
$ which Java
私は/Library/Java/Home
を使う傾向があります。環境設定パネルの仕組みは、お好みのバージョンに合わせて最新のものにしてください。
上記のことは、YOSEMITE for GRAPHICAL APPLICATIONSではこれ以上機能しません。 Eclipseのように、あるいはSpotlightで始まったものは何でも。 (.bash_profile、launchd.confはターミナルセッションでのみ機能します。)Eclipseを起動する前に、ターミナルウィンドウを開いて次のコマンドを実行してください。
launchctl setenv Java_HOME /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home
(あなたのインストールパスで!おそらくフルパスの代わりに$(/ usr/libexec/Java_home)でも動作します。)
恒久的な解決策に関する優れた記事全体をここに表示します。 launchd.confによる環境変数の設定は、OS X Yosemite/El Capitan/macOS Sierraでは機能しなくなりましたか?
あなたがアプリケーションについて言及して以来端末の設定をスキップして、永久的なシステム環境変数を設定しました(macOS Sierraのために働きます; El Capitanのためにも働くべきです):
launchctl setenv Java_HOME $(/usr/libexec/Java_home -v 1.8)
(これにより、Java_HOMEが最新の1.8 JDKに設定されます。おそらく、javac 1.8.0_101、javac 1.8.0_131など、いくつかの更新を行った可能性があります。)
もちろん、あなたの必要性とあなたのシステムに合うように1.8から1.7または1.6(本当に?)に変更してください
私はこの スタック が役に立つのを見つけました、私は同じ問題を抱えていました、そして私は修正することができました:
私のJavaパスはここにありました:
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
そして私の.bash_profile
に入れるために必要でした:
export Java_HOME=\"/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home\"
助けを願って
私にとっては、mavenは.mavenrc
ファイルを処理するようです。
echo "export Java_HOME=$(/usr/libexec/Java_home -v 1.8)" > ~/.mavenrc
私はSOでもそれを拾ったと確信しています、ただどこで覚えていることができません。
ファイル~/.mavenrc
を作成する
それをファイルに貼り付けます
export Java_HOME=$(/usr/libexec/Java_home)
テスト
mvn -v
他の回答が指摘しているように、Javaホームディレクトリを見つける正しい方法は/usr/libexec/Java_home
を使うことです。
これに関する公式文書は、AppleのテクニカルQ&A QA1170:OS X上の重要なJavaディレクトリ: https://developer.Apple.com/にあります。ライブラリ/ mac/qa/qa1170/_index.html