Eclipse、Maven、Netbeansなどを使用してUbuntuでJavaプログラムを実行している場合は、JAVA_HOMEをパスに設定する必要があります。そうしないと、システムは「java_home環境変数が設定されていません」と文句を言います。
この初心者向けチュートリアルでは、UbuntuでJavaHome変数を正しく設定する手順を示します。この手順は、他のほとんどのLinuxディストリビューションでも有効です。
このプロセスは、次の手順で構成されています。
- Java Development Kit(JDK)がインストールされていることを確認します。
- JDK実行可能ファイルの正しい場所を見つける。
- JAVA_HOME変数を設定し、変更を永続的にします。
ステップ1:JDKがインストールされているかどうかを確認します
LinuxシステムにJavaDevelopmentKit(JDK)がインストールされているかどうかを確認する最も簡単な方法は、次のコマンドを実行することです。
javac --version
上記のコマンドは、Javaコンパイラのバージョンをチェックします。インストールされている場合は、Javaバージョンが表示されます。
コマンドにjavacコマンドが見つからないなどのエラーが表示される場合は、JDKをインストールする必要があります。
システムにJavaコンパイラがインストールされていない場合は、次のコマンドを使用してJavaDevelopmentKitをインストールします。
sudo apt install default-jdk
これにより、デフォルトのJavaバージョンが現在のUbuntuバージョンにインストールされます。他の特定のJavaバージョンが必要な場合は、UbuntuにJavaをインストールするときに指定する必要があります。
システムにJavaコンパイラが存在することを確認したら、その場所を見つけます。
ステップ2:JDK実行可能ファイル(Javaコンパイラ)の場所を取得する
実行可能ファイルは通常、/ usr / lib/jvmディレクトリにあります。私は推測ゲームのためにあなたを一人に任せません。代わりに、Java実行可能ファイルのパスを調べてみましょう。
whichコマンドを使用して、Javaコンパイラ実行可能ファイルの場所を取得します。
which javac
ここでの問題は、それが与える場所が実際にはシンボリックリンクであるということです。数回フォローする必要があります:
また、/ usr / lib / jvm / java-11-openjdk-amd64 / bin / javacのようなパスが見つかったら、 / bin/javacを削除します。 そこから/usr / lib / jvm / java-11-openjdk-amd64のようなものを取得します
より簡単な方法は、シンボリックリンクをたどり、次のコマンドを使用して実際の実行可能ファイルに直接アクセスすることです。
readlink -f `which javac` | sed "s:/bin/javac::"
readlinkコマンドはシンボリックリンクをたどります。 which javaの周りに`を使用しました 。これはコマンド置換と呼ばれ、コマンドをその出力に置き換えます。次に、Sedを使用して/ bin / javacを何も置き換えず、完全に削除します。
私の例では、実行可能ファイルの場所は / usr / lib / jvm / java-11-openjdk-amd64です。 。それはあなたにとって異なるかもしれません。上記のコマンドから取得した正しいパスをシステムにコピーします。ご存知のとおり、Ubuntuターミナルでコピーして貼り付けることができます。
ステップ3:JAVA_HOME変数を設定する
場所がわかったので、それを使用してJAVA_HOME環境変数を設定します。
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/bin/java
JAVA_HOMEディレクトリの値を確認してください:
echo $JAVA_HOME
同じ端末でプログラムまたはプロジェクトを実行して、機能するかどうかを確認してください。
これはまだ終わっていません。宣言したJAVA_HOME変数は一時的なものです。ターミナルを閉じるか、新しいセッションを開始すると、再び空になります。
JAVA_HOME変数を「永続的に」設定するには、ホームディレクトリのbashrcファイルに追加する必要があります。
Linuxターミナルでファイルを編集するためにNanoエディターを使用できます。それを望まず、単純なコピーアンドペーストアプローチを採用する場合は、次のコマンドを使用します。
bashrcファイルをバックアップします(混乱した場合は、元に戻すことができます):
cp ~/.bashrc ~/.bashrc.bak
次に、echoコマンドを使用して、このセクションの冒頭で使用したエクスポートコマンドを追加します。 以下のコマンドを変更して、システムで表示される正しいパスを使用します 。
echo "export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64" >> ~/.bashrc
ファイルの最後に正しく追加されていることを確認してください:
tail -3 ~/.bashrc
上記のtailコマンドは、指定されたファイルの最後の3行を表示します。
上記の3つのコマンドの出力全体を次に示します。
これで、セッションを終了したりシステムを再起動したりしても、JAVA_HOME変数は指定した値に設定されたままになります。それがあなたの望みですよね?
将来、デフォルトのJavaバージョンを変更する場合は、JAVA_HOMEの値を変更して、正しい実行可能パスを指定する必要があることに注意してください。
このチュートリアルがJavaHomeの設定に役立つだけでなく、その方法も教えてくれることを願っています。
それでも問題が解決しない場合、または質問や提案がある場合は、コメントでお知らせください。