11

*NIX システム (OS X、Ubuntu など) を切り替える Java 開発者として、私はいつでも JDK を起動して実行することができますが、JAVA_HOME を必要とする多くのパッケージには JAVA_HOME の明確な定義がないようです。設定する:

例えば

  • MAVEN : "JAVA_HOME、JDK ディレクトリを指します"
  • HADOOP : "Java 1.5.x インストールへのパスを指定する JAVA_HOME"
  • SUN : "JAVA_HOME は JRE を含むディレクトリです"

したがって、この問題に関して2つの質問があります(洞察も歓迎しますが、具体的には、これら2つの質問があります):

1) mac os X Java インストールは、ターゲットを「JavaVM.frameworks」ディレクトリから usr/bin にコピーしますか?

2) JAVA_HOME の「定義」とは? 明らかに、JAVA_HOME を単純に「Java がインストールされている場所」と定義することはできません。なぜなら、Java は HOME の場所 (つまり、/System/Library/Fraemworks/.....) の両方に存在する可能性があるため、この定義があいまいであるからです。または、/usr/bin ディレクトリに直接配置することもできます。

私の考え

JAVA_HOME は、実際にはバイナリの「Java」プログラム以上のものを参照することを意図していると思います。JAVA_HOME は、おそらく Java 関連のディレクトリとバイナリのセットの場所を参照することを意図しています... しかし、それでも、これが何を構成するのかはよくわかりません。

4

5 に答える 5

14

の「真の」定義はありませんJAVA_HOME。この変数は Java ランタイム環境では使用されず、Java プラットフォームの一部としての仕様はありません。

これは、Java プラットフォーム上で実行される一部のアプリケーションで使用される規則にすぎません。標準がないため、各アプリケーションは、この変数が参照するディレクトリについて独自の規則を自由に作成できます。アプリケーションのドキュメントを読んで、必要なものを見つけてください。

とはいえ、この変数を使用するすべてのアプリケーションは、JDK インストールの最上位ディレクトリ (JDK 内の JRE ではなく、JDK 自体) に設定すると機能します。javaこのディレクトリには、実行可能ライブラリとランタイム ライブラリをそれぞれ含む「bin」サブディレクトリと「lib」サブディレクトリが含まれている必要があります。

一部のアプリケーションは、JRE を指定しても動作しますが、 のような開発ツールが必要なjavac場合は失敗します。

通常、JAVA_HOME必要以上にツールを実行するときはコマンド ラインで指定します。これは、次のように、複数のバージョンの Java を使用しているためです。

JAVA_HOME=/usr/local/jdk1.6.0_29 ant
于 2011-11-17T19:43:41.627 に答える
2

次のようなパスのように定義します。

`JAVA_HOME\bin\java`

プログラムを実行する実行可能ファイルはどこにありますか。

すべてのSDK JRE files and jars.

于 2011-11-17T19:36:53.650 に答える
2

Sun の規則では、Java ホームを jre ルート ディレクトリと呼んでいます。これは、より権威のある定義である必要があります。

Maven のような開発ツールの場合、主に jdk dir を気にします。彼らはそれを「JDKホーム」と呼ぶべきでした。残念ながら、多くの人がそれを「Javaホーム」とも呼んでいるため、混乱しています。

「Java ホーム」を使用しないことで混乱を解消できます。わかりやすくするために、代わりに「jre ホーム」または「jdk ホーム」と言ってください。

于 2011-11-17T19:48:52.923 に答える
1

異なるシステムで何に設定されているかはわかりませんがJAVA_HOME、Java インストールのルートに設定する必要があります。したがって、インストールした場合

C:\Program Files\Java\jdk1.6.0_25\

JAVA_HOMEそれに設定する必要があります。

JDK_HOMEあなたがそれを書面で見た場合と同様です。

于 2011-11-17T19:34:28.217 に答える
0

JAVA_HOME は、使用する Java インストールのインストール ディレクトリを指している必要があります。

于 2011-11-17T19:35:55.487 に答える