在 Ubuntu、Debian、Linux Mint 或 Fedora 使用 install-java.sh

“install-java.sh”是一个 Bash 脚本,用于在基于 Debian 和 Ubuntu 的 Linux 发行版上安装和设置任何 Oracle Java 开发工具包 (JDK) 版本。

脚本开发人员说他主要使用 Ubuntu,因此该脚本仅在 Ubuntu 上进行了测试,
我使用该脚本安装和设置 Oracle Java Fedora,并且它没有任何问题。 它也可能适用于其他 Linux 发行版。

install-java.sh 脚本非常通用,允许用户安装任何 Oracle JDK 主要/次要版本。 您可以使用它来:

  • 安装最新的 Oracle Java 11 LTS
  • 安装任何 Oracle Java 8 版本,包括 Oracle Java 演示和 JCE 策略
  • 安装 Oracle Java 7、10 和其他现在仅通过 My Oracle Support 提供给 Oracle 客户的 JDK 版本(需要支持登录)
  • 为与运行脚本的系统不同的体系结构安装 Oracle Java 版本

多亏了这一点,install-java.sh 是 Web Upd8 维护的 Oracle Java 8 PPA 或我维护的 Oracle Java 11/12 PPA 的绝佳替代品,它不仅允许用户安装最新的 Oracle Java 版本,还允许安装任何他们想要的版本。 它适用于 Fedora 可能还有其他 Linux 发行版,而不仅仅是 Ubuntu/Debian。

install-java.sh 脚本功能包括:

  • 您可以自动化 Java 安装脚本
  • 指定安装目录(默认为 /usr/lib/jvm)
  • 可以安装 Oracle JDK 演示和 JCE 策略文件,这些文件在 Oracle Java 最高版本 8 中可用(要安装这些文件,请下载演示 Linux .tar.gz 和 JCE 策略 .zip 存档并将它们放在与 Oracle Java 相同的文件夹中.tar.gz,然后像往常一样运行安装命令,它会选择这些,询问你是否要安装它们)
  • 可以为 Oracle Java Mission Control (JMC) 安装菜单项(快捷方式)
  • 附带一个uninstall-java.sh 脚本来卸载使用install-java.sh 安装的任何Java 版本

有关的:

  • 如何在 Ubuntu、Linux Mint 或 Debian 中安装 Oracle Java 12 (JDK 12)(使用 PPA)
  • 如何在 Ubuntu、Linux Mint 或 Debian 中安装 Oracle Java 11(来自 PPA 存储库)

使用 install-java.sh 在 Debian、Ubuntu、Linux Mint 和 Fedora

1. 下载 install-java.sh 并使其可执行。

作为一般规则,我建议检查此脚本中使用的代码以及您在系统上运行的任何其他脚本,并且仅在您至少对它们的作用有一些基本了解时才运行它们。

您可以在您的主目录中下载 install-java.sh,并使用以下命令使其可执行:

cd && wget https://raw.githubusercontent.com/chrishantha/install-java/master/install-java.sh

chmod +x install-java.sh

2. 安装解压缩(install-java.sh 脚本需要)。

unzip可以安装如下:

  • Debian、Ubuntu、Linux Mint:
sudo apt install unzip

  • Fedora:
sudo dnf install unzip

2. 使用 install-java.sh 安装 Oracle Java(JDK 7、8 或 11)。

要安装 Oracle Java,您需要从 oracle.com 下载 .tar.gz 存档。 然后,您可以使用以下命令安装 Oracle Java 11、8 或 7:

sudo -E ./install-java.sh -f </path/to/oracle-java.tar.gz> -p </usr/lib/jvm>

-f

指定 Oracle Java .tar.gz 存档及其路径,以及
-p

让您设置 Oracle Java 安装目录(在此目录中创建一个新的 Java 子文件夹),使用
/usr/lib/jvm

是默认安装路径。 我用了
sudo -E

(运行命令时保留用户环境)因为没有它,
JAVA_HOME

未设置环境变量 Fedora.

例子。 我下载了 Oracle JDK 8u202,.tar.gz 保存在 Downloads 文件夹中。 此命令将下载的 Oracle JDK 8u202 安装在
/usr/lib/jvm

sudo -E ./install-java.sh -f ~/Downloads/jdk-8u202-linux-x64.tar.gz -p /usr/lib/jvm

这是带有输出的命令,因此您可以查看使用 install-java.sh 脚本安装 Oracle Java 时发生的情况:

$ sudo -E ./install-java.sh -f ~/Downloads/jdk-8u202-linux-x64.tar.gz -p /usr/lib/jvm

Extracting /home/logix/Downloads/jdk-8u202-linux-x64.tar.gz to /usr/lib/jvm
JDK is extracted to /usr/lib/jvm/jdk1.8.0_202
Run update-alternatives commands? [y/N] y
Running update-alternatives --install and --config for jar java javac javadoc javah javap javaws jcmd jconsole jarsigner jhat jinfo jmap jmc jps jstack jstat jstatd jvisualvm keytool policytool wsgen wsimport mozilla-javaplugin.so
Do you want to set JAVA_HOME environment variable? [y/N] y
Do you want to create a desktop shortcut to JMC? [y/N] y

如您所见,脚本询问它是否应该为 Oracle Java 二进制文件运行 update-alternatives(并将此 Oracle Java 版本设置为默认系统 Java),设置
JAVA_HOME

你的环境变量
~/.bashrc

文件,以及是否应该为 Oracle Java Mission Control (JMC) 创建桌面快捷方式。

使用 install-java.sh 自动化 Oracle Java 安装过程

在使用 install-java.sh 脚本时,您可以通过使用
yes

命令,像这样(它对所有 install-java.sh 脚本问题的回答是肯定的 – 见上文):

yes | sudo -E ./install-java.sh -f </path/to/oracle-java.tar.gz> -p </usr/lib/jvm>

使用 install-java.sh 安装 Oracle Java 演示和 JCE 策略(仅限 JDK 7 或 8)

在版本 8 之前,Oracle Java 提供了可供下载的演示和 Java 密码术扩展 (JCE) 无限强度管辖策略文件。 如果您还需要安装这些文件,则可以在安装 Oracle Java 时通过 install-java.sh 提取并安装存档。

下载 Oracle Java、演示存档(与 Oracle Java 相同的版本)和 JCE 策略文件,并将它们全部放在同一个文件夹中。

Oracle Java 8u202 示例:

  • jdk-8u202-linux-x64.tar.gz
  • jdk-8u202-linux-x64-demos.tar.gz
  • jce_policy-8.zip

下载 Oracle Java 8u202 的 .tar.gz 存档和演示以及 JCE 策略 zip,将它们放在您家中名为“java”的文件夹中,然后像通常使用 install-java.sh 一样安装 Oracle Java,然后演示和 JCE 策略将与 Oracle Java 一起安装。 在这种情况下示例安装命令:

sudo -E ./install-java.sh -f ~/java/jdk-8u202-linux-x64.tar.gz -p /usr/lib/jvm

在继续安装 Oracle Java 之前,该脚本将询问您是否要安装演示和 JCE 策略文件:

$ sudo -E ./install-java.sh -f ~/java/jdk-8u202-linux-x64.tar.gz -p /usr/lib/jvm

Extracting /home/logix/java/jdk-8u202-linux-x64.tar.gz to /usr/lib/jvm
JDK is extracted to /usr/lib/jvm/jdk1.8.0_202
Extract demos? [y/N] y
Extracting /home/logix/java/jdk-8u202-linux-x64-demos.tar.gz to /usr/lib/jvm
Install Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files? [y/N] y
Extracting policy jars in /home/logix/java/jce_policy-8.zip to /usr/lib/jvm/jdk1.8.0_202/jre/lib/security
Archive:  /home/logix/java/jce_policy-8.zip
  inflating: /usr/lib/jvm/jdk1.8.0_202/jre/lib/security/local_policy.jar  
  inflating: /usr/lib/jvm/jdk1.8.0_202/jre/lib/security/US_export_policy.jar  
Run update-alternatives commands? [y/N] y
Running update-alternatives --install and --config for jar java javac javadoc javah javap javaws jcmd jconsole jarsigner jhat jinfo jmap jmc jps jstack jstat jstatd jvisualvm keytool policytool wsgen wsimport mozilla-javaplugin.so
Do you want to set JAVA_HOME environment variable? [y/N] y
Do you want to create a desktop shortcut to JMC? [y/N] y

卸载使用 install-java.sh 安装的 Oracle Java

要卸载 Oracle Java,还有另一个脚本,称为 uninstall-java.sh。 您可以将脚本下载到您的主目录中,使其可执行,然后像这样卸载 Oracle Java:

cd && wget https://raw.githubusercontent.com/chrishantha/install-java/master/uninstall-java.sh

chmod +x uninstall-java.sh

sudo -E ./uninstall-java.sh -p <java_dist_dir>

java_dist_dir

是安装 Oracle Java 的文件夹。 例如,
/usr/lib/jvm/jdk1.8.0_202

适用于 Oracle Java 8u202。 uninstall-java.sh 脚本更新 Java 替代项,删除已安装的 Java 目录,并删除 JMC 快捷方式。

例子:

$ sudo -E ./uninstall-java.sh -p /usr/lib/jvm/jdk1.8.0_202

Run update-alternatives commands? [y/N] y
Running update-alternatives --remove for jar java javac javadoc javah javap javaws jcmd jconsole jarsigner jhat jinfo jmap jmc jps jstack jstat jstatd jvisualvm keytool policytool wsgen wsimport mozilla-javaplugin.so
Remove directory '/usr/lib/jvm/jdk1.8.0_202'? [y/N] y
Remove JMC shortcut? [y/N] y