![Oracle JDK 11 安装并设置为默认值(不是 openJDK)](https://linux22.com/image/923987/Oracle%20JDK%2011%20%E5%AE%89%E8%A3%85%E5%B9%B6%E8%AE%BE%E7%BD%AE%E4%B8%BA%E9%BB%98%E8%AE%A4%E5%80%BC%EF%BC%88%E4%B8%8D%E6%98%AF%20openJDK%EF%BC%89.png)
我已经安装了 openJDK,但想默认使用常规 JDK 11(而不是 OpenJDK)。我已采取的步骤:
1)java -version
openjdk 版本“11.0.7”2020-04-14 OpenJDK 运行环境(构建 11.0.7+10-post-Ubuntu-2ubuntu219.10)OpenJDK 64 位服务器 VM(构建 11.0.7+10-post-Ubuntu-2ubuntu219.10,混合模式,共享)`
2)sudo apt-get install oracle-java11-set-default-local
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package oracle-java11-set-default-local is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'oracle-java11-set-default-local' has no installation
3)update-java-alternatives -l
java-1.11.0-openjdk-amd64 1111
/usr/lib/jvm/java-1.11.0-openjdk-amd64
4) 我是否可以将软件包安装程序设置为 /usr/lib/jvm/jdk-11.0.7,而不是 java-11-oracle?屏幕截图的上半部分是我从 Oracle 网站下载的 .deb 文件。下半部分是保存在 /usr/lib/jvm 中的内容
答案1
看起来你正在尝试从 PPA 安装软件包,但忘记添加电力购买协议。
因此,您必须执行以下操作:
下载jdk-11.0.7_linux-x64_bin.tar.gz
自https://www.oracle.com/java/technologies/javase-jdk11-downloads.html并将其复制到缓存位置
sudo mkdir -p /var/cache/oracle-jdk11-installer-local
sudo cp jdk-11.0.7_linux-x64_bin.tar.gz /var/cache/oracle-jdk11-installer-local/
sudo add-apt-repository ppa:linuxuprising/java
sudo apt-get update
sudo apt-get install --reinstall oracle-java11-set-default-local
然后重新启动。
强制 Oracle Jave 默认使用
sudo update-java-alternatives --set /usr/lib/jvm/java-11-oracle
答案2
不知何故 openjdk 覆盖了 jdk,因此我将 /app/lang/java/jdk-11.0_64 放在 .bashrc 文件的末尾,然后就修复了