Java_HOME
ディレクトリを見つけるために使用できるLinuxコマンドはありますか?環境変数( "env")を出力しようとしましたが、ディレクトリが見つかりません。
echo $Java_HOME
は、設定されている場合、値を出力します。ただし、スタートアップスクリプトで手動で設定しなかった場合、おそらく設定されていません。
which Java
を試しても何も見つからない場合、Javaがマシンにインストールされていないか、少なくともパスにありません。使用しているLinuxディストリビューションとルートアクセスの有無に応じて、 http://www.Java.com にアクセスして必要なバージョンをダウンロードできます。次に、このディレクトリを指すようにJava_HOMEを設定できます。これは単なる慣習であり、Javaがインストールされているかどうかを判断するために使用すべきではないことに注意してください。
Linuxでは、$(dirname $(dirname $(readlink -f $(which javac))))
を実行できます
Macでは、$(dirname $(readlink $(which javac)))/Java_home
を実行できます
私はウィンドウについてはわかりませんが、where javac
があなたをかなり近づけると思います
これは遅いことはわかっていますが、このコマンドは/ usr /ディレクトリを検索してJavaを見つけます
Sudo find /usr/ -name *jdk
結果
/usr/lib/jvm/Java-6-openjdk
/usr/lib/jvm/Java-1.6.0-openjdk
参考までに、Macを使用している場合、現在Java_HOMEは次の場所にあります。
/System/Library/Frameworks/JavaVM.framework/Home
ちょうど別のソリューション、このクロスプラットフォーム(Java
を使用)、およびjreの場所を示します。
Java -XshowSettings:properties -version 2>&1 > /dev/null | grep 'Java.home'
Java
の現在の設定をすべて出力し、Java.home
という設定を見つけます。
Windowsの場合、grepの代わりにfindstrを使用できます。
Java -XshowSettings:properties -version 2>&1 | findstr "Java.home"
使用する環境変数の値を表示するには:
echo $ VARIABLE
あなたの場合は次のようになります:
echo $ Java_HOME
設定されていない場合は、.bashrc
ファイルに追加できます。
export Java_HOME = $(readlink -f/usr/bin/Java | sed "s:bin/Java ::")
パッケージを更新すると動的に変更されます。
環境で$Java_HOME
が定義されている場合...
$ echo $Java_HOME
$ # I am not lucky...
ロードされたクラスから推測できます。
$ Java -showversion -verbose 2>&1 | head -1
[Opened /usr/lib/jvm/Java-1.7.0-openjdk-1.7.0.75.x86_64/jre/lib/rt.jar]
この方法により、複数のインストールがある場合に使用される正しいjdk
/jre
を確実に見つけることができます。
またはstrace
を使用:
$ strace -e open Java -showversion 2>&1 | grep -m1 /jre/
open("/usr/lib/jvm/Java-1.7.0-openjdk-1.7.0.75.x86_64/jre/bin/../lib/AMD64/jli/tls/x86_64/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
ターミナルで、次を入力します。
echo "$ Java_HOME"
何も取得していない場合は、環境変数Java_HOMEが設定されていません。 「locate Java」を使用して、Javaのインストールがどこにあるかを試してみることができます。
Java_HOMEを設定しましたか
ここに改善があり、ディレクトリだけを標準出力に取得します。
Java -XshowSettings:properties -version 2>&1 \
| sed '/^[[:space:]]*Java\.home/!d;s/^[[:space:]]*Java\.home[[:space:]]*=[[:space:]]*//'
(dirname $(dirname $(readlink -e $(which Java))))