1. ホーム
  2. マコス

[解決済み】MacのJDKのパスって何?重複

2022-04-14 05:44:52

質問

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

解決方法を教えてください。

Java6(Apple社提供)からJava7以降(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 を参照して、呼び出すコマンドを決定します。 JAVA_HOME 環境変数が設定されていない場合や、Javaのホームディレクトリを指していない場合は、自動的に java_home . このことは、セットアップのデバッグを行う際に重要なことです。