Mac 上の JDK のパスは何ですか? [重複] 質問する

Mac 上の JDK のパスは何ですか? [重複] 質問する

私は仕事でのみ Mac を使用していますが、JAVA_HOME を JDK の適切なパスに設定する必要があります。JDK をダウンロードしてインストールしましたが、どこにも見つかりません。インターネットで解決策を探していましたが、Libraries/Java フォルダーが見つかりません。

ベストアンサー1

場所はJava 6(Apple提供)からJava 7以降(Oracle提供)に変更されました。これを確認する最も一般的な方法は、以下を実行することです。

/usr/libexec/java_home

これは、デフォルトの Java インストールへのパスと存在するすべての代替パスの両方を見つけるためのネイティブでサポートされている方法です。

ヘルプ テキスト ( ) を確認するとjava_home -h、このコマンドを使用して OS X ( ) 上で Java プログラムを確実に起動できることがわかります。またjava_home --exec ...、必要な Java のバージョンとアーキテクチャを明示的に指定したり、不足している場合はユーザーにインストールを要求したりすることもできます。

より平凡なアプローチですが、コマンドがどの Java インストールに解決されるかを具体的に追跡するのに役立つ方法はjava、次のようになります。

  1. 走る

    which java
    
  2. /usr/bin/java実際の場所へのシンボリックリンクである のようなものが返された場合は、以下を実行します。

    ls -l `which java`
    

    私のシステムでは、これは次のように出力されます

    /usr/bin/java -> /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home/bin/java
    

    そこから Java ホーム ディレクトリを読み取ることができます。

  3. 別のシンボリックリンクを指している場合はusr/bin/java、同じアプローチを再帰的に適用します。

    ls -l <whatever the /usr/bin/java symlink points to>
    

重要な違いは、最初にAppleのJavaをインストールし、後でOracleのJavaをインストールした場合のセットアップです。その場合、上記の手順2で次のようになります。

/usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Commands/java

そして、その特定のバイナリは、環境変数を参照して呼び出すjava実際のコマンドを解決するスタブであり、環境変数が設定されていないか、Java ホーム ディレクトリを指していない場合は、 の呼び出しに戻ります。セットアップをデバッグするときは、この点を念頭に置くことが重要です。javaJAVA_HOMEjava_home

おすすめ記事