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