JAVA_HOMEはJREではなくJDKを指す必要があります。

JAVA_HOMEはJREではなくJDKを指す必要があります。

Windowsでは同様の質問に答えたが、Linuxではそれほど多くなかったので、誰もがこの問題を解決するのに役立つことができればと思います。私はLinux mint 20.2(Uma)を実行しています。

Mavenプロジェクトの実行に問題があります。エラーが発生します。

The JAVA_HOME environment variable is not defined correctly
This environment variable is needed to run this program
NB: JAVA_HOME should point to a JDK not a JRE

JavaとMav​​enを完全に削除し、JDK17とJAVA_HOMEを設定しました。

$ echo $JAVA_HOME
/usr/lib/jvm/jdk-17.0.2

構成ファイル設定を含める

$ grep JAVA_HOME /etc/profile

JAVA_HOME=/usr/lib/jvm/jdk-17.0.2
JRE_HOME=$JAVA_HOME/jre
PATH=$PATH:JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME

and.bashrc

$ grep JAVA_HOME ~/.bashrc

JAVA_HOME=/usr/lib/jvm/jdk-17.0.2
JRE_HOME=$JAVA_HOME/jre
PATH=$PATH:JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME

また、JAVA_HOMEを以前のJDKにリダイレクトするmaven.shファイルを見つけて削除しました。/etc/profile.d/

しかし、これらのすべての質問にもかかわらず、何かがまだJAVA_HOMEを以前のJDKにリダイレクトしているのか正しく設定していないのかわかりませんmvn。で変更を逆追跡したかなりかなり古い。

誰でもこの問題を解決する方法についてのアイデアがある場合は、大変感謝します。みんなありがとうございます。

答え1

考えられる問題の1つはパス変数です。 JREとJDK binの両方が含まれています。に変更し、PATH=$PATH:JAVA_HOME/binJDKバイナリのみがアクセスできるようにすることをお勧めします。これは私の設定で、何の問題もありませんでした。

役に立たない場合はダウンロードすることをお勧めします。オープンJDK、解凍してダウンロードしたOpenJDKディレクトリにパスを変更します。

関連情報