web-dev-qa-db-ja.com

OSXでJava_HOMEを何に設定すればよいですか

シェルスクリプトを使用して環境を設定する多くの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環境設定ペインで定義されているように)。

しかし、どちらを使うべきか、それともどれを使っても大丈夫でしょうか。

422
Robert Christie

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
822
mipadi

また、JDKを反映するようにPATHを設定するのも面白いです。 Java_HOMEを追加した後( 'mipadi'で引用されている例で実行できます):

export Java_HOME=$(/usr/libexec/Java_home)

〜/ .profileにも追加:

export PATH=${Java_HOME}/bin:$PATH

PS :OSXの場合、私は一般的にHOMEディレクトリで.bashrcの代わりに.profileを使用します。

35
lucasarruda

私はMAC OS X(Sierra) 10.12.2を持っています。

次の手順に従って、Java_HOMEReact 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

以上です。

19
hygull

現在、Javaは/Library/Java/JavaVirtualMachinesにインストールされているようです。

14

私は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
13
Rae

私は/Library/Java/Homeを使う傾向があります。環境設定パネルの仕組みは、お好みのバージョンに合わせて最新のものにしてください。

9
Clint

上記のことは、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では機能しなくなりましたか?

8

あなたがアプリケーションについて言及して以来端末の設定をスキップして、永久的なシステム環境変数を設定しました(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(本当に?)に変更してください

2
ericn

私はこの スタック が役に立つのを見つけました、私は同じ問題を抱えていました、そして私は修正することができました:

私のJavaパスはここにありました:

/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home

そして私の.bash_profileに入れるために必要でした:

export Java_HOME=\"/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home\"

助けを願って

2
Shirow

私にとっては、mavenは.mavenrcファイルを処理するようです。

echo "export Java_HOME=$(/usr/libexec/Java_home -v 1.8)" > ~/.mavenrc

私はSOでもそれを拾ったと確信しています、ただどこで覚えていることができません。

1
maksimov

ファイル~/.mavenrcを作成する

それをファイルに貼り付けます

export Java_HOME=$(/usr/libexec/Java_home)

テスト

mvn -v

1
KhaledMohamedP

他の回答が指摘しているように、Javaホームディレクトリを見つける正しい方法は/usr/libexec/Java_homeを使うことです。

これに関する公式文書は、AppleのテクニカルQ&A QA1170:OS X上の重要なJavaディレクトリhttps://developer.Apple.com/にあります。ライブラリ/ mac/qa/qa1170/_index.html

1