Antをインストールすると、Javaインストールが上書きされます。

Antをインストールすると、Javaインストールが上書きされます。

Javaをインストールした後、ANTをインストールしようとしています。私のJavaはSun Javaから来ました。

pc19@pc19-H110:~$  java -version
java version "20.0.2" 2023-07-18
Java(TM) SE Runtime Environment (build 20.0.2+9-78)
Java HotSpot(TM) 64-Bit Server VM (build 20.0.2+9-78, mixed mode, sharing)

pc19@-H110:~$ echo $JAVA_HOME
/usr/lib/jvm/jdk-20/bin/java

pc19@pc19-H110:~$ whereis java
java: /usr/bin/java /usr/share/java /usr/lib/jvm/jdk-20/bin/java

pc19@-H110:~$ sudo apt-get install ant

pc19@-H110:~$ java -version
openjdk version "11.0.20.1" 2023-08-24
OpenJDK Runtime Environment (build 11.0.20.1+1-post-Ubuntu-0ubuntu120.04)
OpenJDK 64-Bit Server VM (build 11.0.20.1+1-post-Ubuntu-0ubuntu120.04, mixed mode, sharing)

ANTインストールを使用すると、sudo apt get install antSun JavaインストールとOpenJdkインストールが上書きされます。誰もが解決策を知っていますか?

AntのインストールにJavaが含まれるのはなぜですか?どうやって防ぐことができますか?

ベストアンサー1

パッケージ・マネージャはOracle Javaのインストールを認識しません。このantパッケージにはJREが必要です。またはdefault-jre-headlessパッケージによって異なりますjava8-runtime-headless。そのため、antインストール中にUbuntu 20.04のOpenJDK 11であるデフォルトのJREがインストールされます(apt install antこれについては後で説明します)。 JRE パッケージが再構成され、ディレクトリ/usr/bin/javaの前に配置されるため、JRE の代わりにシステム JRE が実行されます。jdk-20/binjava

OpenJDK 11のインストールを回避するには、仮想パッケージを作成して、ヘッドレスJREがインストールされたことをシステムに通知できますdefault-jre-headlessインストールされたパッケージの実装されていない依存関係を無視するにはどうすればよいですか?詳細についてgstreamer0.10-plugins-goodはに変更してくださいdefault-jre-headless

おすすめ記事