JavaのJAVA_HOMEを設定するには?


303

Javaのバージョンをインストールしました。$JAVA_HOME環境変数を正しく設定するにはどうすればよいですか?

回答:


422

Petronilla Escarabajoが提案JAVA_HOMEする/etc/profileように設定できます。ただし、またはシステム変数の優先位置はです。JAVA_HOME/etc/environment

またはなどの/etc/environmentテキストエディタで開き、次の行を追加します。nanogedit

JAVA_HOME="/usr/lib/jvm/open-jdk"

(javaパスは異なる場合があります)

source次のコマンドを実行して、変数をロードするために使用します。

source /etc/environment

次に、次のコマンドを実行して変数を確認します。

echo $JAVA_HOME

更新

通常、ほとんどのLinuxシステムはデフォルトで/ etc / environmentをソースします。システムがそれをしない場合、次の行を~/.bashrc(Thanks @pje)に追加します

source /etc/environment

2
IntelliJ IDEAをベースとするAndroid Studioを実行しようとすると、@ advocateに非常に類似したエラーメッセージが表示されました。「 'tools.jar'はAndroid Studioクラスパスにないようです」成功せずにJAVA_HOMEをいじくり回した後、Android Studioを起動するシェルスクリプトであるstudio.shを調べることにしました。おかしな推測として、JDK_HOMEをJAVA_HOMEに期待されるのと同じ値に設定します。大きな問題なくインストールされました。
ヒルトンフェルナンデス

3
ソフトウェア開発を行う場合、JDKバージョンを切り替えるたびに再起動する場合を除き、JAVA_HOMEを/ etc / environmentに入れないでください。
HDave

2
他の人が指摘したように、これは一時的な解決策です。bashを再起動するたびにソースを実行したい人はいません。
yuranos87

6
他の人が指摘しているように、これは端末セッション間で固定されません。これに対処するために行ったのsource /etc/environmentは、bash構成ファイルの先頭に行を追加して、~/.bashrc起動時にすべての環境設定をロードすることです。これまでのところ私のために働いています。
PJE

2
@sedulam私は答えを更新しました
マヌラワイディアナータ

79

JAVA_HOME環境変数を設定するには、次の手順を実行します。

  1. キーボードのCtrl+ Alt+ Tを押してターミナルを起動します。
  2. 次のコマンドを入力します:
    $gksudo gedit /etc/environment
  3. Javaをインストールした場所に応じて、完全なパスを指定する必要があります。この例では、Oracle JDK 7を/usr/lib/jvm/java-7-oracleディレクトリにインストールしました。
    ファイルの最後までスクロールし、次を入力します。
    JAVA_HOME=/usr/lib/jvm/java-7-oracle
    export JAVA_HOME
  4. ファイルを保存してgeditを終了します。
  5. 最後に、次のコマンドでシステムPATHをリロードします:
    $. /etc/environment

上記の方法により、コンピューターにログインするたびにコマンドを実行する手間が省けます。


5
どうやって 。/ etc / environment work?
スディップバンダリ

1
exportコマンドの追加は必要/etc/environmentですか?
pkaramol

@pkaramol起動時にロードするために、エクスポートJAVA_HOMEを16.04LTSに追加する必要がありました。
adeen-s

3
@ adeen-sあなたexportは行に追加し、/etc/environmentそれは助けましたか?このファイルには、=-区切りの名前と値のペアとして解析される変数定義が含まれています。その内容はコマンドとして実行されません。(を参照してくださいman pam_env。)ファイルをスクリプトであるかのように個別に処理しない限り(/etc/environmentbashの./ sourcebuiltinに渡すなど)、それが機能するとは思わないでしょう。
エリアケイガン

>どのように。/ etc / environment work?-。(ドット)ファイルからのコマンドロードaskubuntu.com/a/232938/189965
ローマBekkiev

37

パスがわからず、openJDKのみがインストールされている場合は、入力 update-alternatives --config javaしてパスを見つける必要があります。変数を設定するには、をJAVA_HOME=<PATH>続けて記述しexport JAVA_HOMEます。変数を宣言するときにスペースがないことに注意してください。変数が保存されているかどうかを確認するには、単に入力echo $JAVA_HOMEして確認します。


これは静的なようです。openjdk-7を削除してopenjdk-9をインストールした場合、JAVA_HOMEが間違った場所を指していませんか?どうすれば動的にできますか?
DavidJ

3
手動で変更することにより。もう一度、あなたは....それがダイナミックになっ方法です
HDave

@HDaveの意味は、特定の場合、JAVA_HOMEが特定のJavaバージョンを指すようにしたい場合があるため、JAVA_HOMEを動的に更新することは望んでいないことです。
マチェイ

私はこの答えが好きです。エコーでテストし、パスを確認しました。しかし、mvn -version
Winnemucca

1
私はもっ​​と無知だったときにこの回答を書きました。説明されているように変数を設定しても、現在の端末セッションにのみ影響し、永続化されません。正しい方法はupdate-alternatives --install <link> <name> <target> <priority> 、たとえば次のように実行すること ですupdate-alternatives --install /usr/bin/java java /usr/lib/jvm/default-runtime/bin/java 1
。–
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.