私は何年も手を伸ばしていないJavaプログラムを更新する任務を担っていますが、最新バージョンのJava OpenJDK 14.0.1.7-2を使用してCentos 7でそれを構築するのに問題があります。$ make all
Javaプログラムのコンパイルを開始するコマンドを実行すると、/bin/sh: javac: command not found
エラーメッセージが表示されます。
.bash_profile
私のホームディレクトリのファイルを編集し、以下を追加しました。
export JAVA_HOME=/usr/lib/jvm/java-14-openjdk-14.0.1.7-2.rolling.el7.x86_64/bin/java
次へ:$ source .bash_profile
変更を有効にして検証すると、期待した結果が出ましたが、echo $JAVA_HOME
それでも幸運ではありません。
これまでJava OpenJDK 1.8をインストールしてjavacリポジトリを接続したときにのみ、プログラムを正常に構築できました。
実行中のalternatives --display javac
最後の行に次のように表示されます。
Current `best' version is /usr/lib/jvm/java-1.7.0-openjdk 1.7.0.261-2.6.22.2.el7_8.x86_64/bin/javac.
私のシステムにJava OpenJDK V1.7がインストールされていないので、これは奇妙です。
実行中のalternatives --display java
最後の行に次のように表示されます。
Current `best' version is /usr/lib/jvm/java-14-openjdk-14.0.1.7-2.rolling.el7.x86_64/bin/java.
私がどこに間違っているのかについての提案は大いに感謝します。
答え1
いくつかは、JAVA_HOME環境変数に実際のリポジトリへのパスがあることに気づきました。これを次のように変更してみてください。
JAVA_HOME=/usr/lib/jvm/java-14-openjdk-14.0.1.7-2.rolling.el7.x86_64/
PATH 環境変数を確認するには、次のコマンドを使用します。
find /bin/ /sbin/ /usr/sbin /usr/lib /usr/bin/ /usr/local/bin /usr/local/sbin ${HOME}/ /opt/ -type f -name 'javac' -exec dirname "{}" \;
エクスポート PATH=${PATH}:whatever-result-you-get-from-that または単に以下を見つけた場合:
export PATH=${PATH}:$(find /bin/ /sbin/ /usr/sbin /usr/lib /usr/bin/ /usr/local/bin /usr/local/sbin ${HOME}/ /opt/ -type f -name 'javac' -exec dirname "{}" \;)
答え2
代替案は、javac
現在インストールされていないと言う項目を指します。これは、最も単純な答えは、代替がJDKを指すように更新することであることを示しています。はいインストールする。これにより、/usr/bin/javac
実際の実行可能ファイルを指すようにシンボリックリンクが再指定され、検索が再びPATH
機能javac
します。実際のPATH
変更は必要ありません。
代替 --config javac
これを行うインタラクティブな方法です。または
代替 --auto javac