更新:下面没有root特权的安装
我建议您不要在ubuntu系统上手动安装软件包,如果已经有(半官方)存储库可以解决您的问题。此外,使用Oracle JDK进行开发只是为了避免(非常零散的)兼容性问题(我已经尝试了很多年,现在肯定会更好)。
将webupd8存储库添加到您的系统中:
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
安装您的首选版本的jdk(从Java-6到Java-9的版本可用):
sudo apt-get install oracle-java8-installer
您还可以安装多个版本的jdk,混合使用openjdk和oracle版本。然后,您可以使用命令update-java-alternatives在安装的版本之间进行切换:
# list available jdk
update-java-alternatives --list
# use jdk7
sudo update-java-alternatives --set java-7-oracle
# use jdk8
sudo update-java-alternatives --set java-8-oracle
要求
如果您add-apt-repository: command not found
确定已software-properties-common
安装:
sudo apt-get install software-properties-common
如果您使用的是旧版Ubuntu,请执行以下操作:
sudo apt-get install python-software-properties
没有root特权的JDK安装
如果您在目标计算机上没有管理员权限,那么最简单的选择就是sdkman
安装经zulu认证的openjdk:
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk install java
注意:尽管sdkman不是默认选项,但它也允许安装官方Oracle JDK。查看可用版本:
sdk ls java
使用以下命令安装所选版本:
sdk install java <version>
例如:
sdk install java 9.0.1-oracle
命令词汇
sudo <command> [command_arguments]
:以超级用户权限执行命令。
add-apt-repository <PPA_id>
:Ubuntu(就像每个Debian衍生产品,一般来说,每个Linux发行版一样)都有一个主要的软件包存储库,用于处理诸如软件包依赖性和更新之类的事情。在Ubuntu中,可以使用PPA(个人软件包存档)扩展主存储库,该PPA通常包含系统中不可用的软件包(就像oracle jdk)或可用软件包的更新版本(例如:LTS中的LibreOffice 5仅可通过此方法获得)PPA)。
apt-get [install|update|upgrade|purge|...]
:它是“命令行”软件包处理程序,用于处理系统上每个存储库的状态(安装/更新/升级可以看作是存储库当前状态的更改)。
在我们的案例中:使用命令,sudo add-apt-repository ppa:webupd8team/java
我们通知系统下一个存储库更新也必须从webupd8存储库中检索软件包信息。
随着sudo apt-get update
我们实际更新系统存储库(所有这些操作都需要超级用户特权,因此我们在命令前添加sudo)。
sudo apt-get install oracle-java8-installer
更新Java的替代品(一个特定的Java版本的更新替代品):在Ubuntu几个包提供相同的功能(浏览互联网,电子邮件编译,编辑文本文件或提供的Java / javac的可执行文件...)。为了允许系统在给定特定任务的情况下选择用户收藏夹工具,使用了使用下面的符号链接的机制/etc/alternatives/
。尝试如上所述更新jdk(在Java 7和Java 8之间切换),并查看如何更改此命令的输出:
ls -l /etc/alternatives/java*
在我们的例子中:sudo update-java-alternatives --set java-8-oracle
更新/ etc / alternatives下的符号链接以指向java-8-oracle可执行文件。
附加功能:
man <command>
:开始使用man阅读关于(几乎)每个shell命令及其选项的非常好的书面和详细的帮助(我在这个小答案中提到的每个命令都有一个手册页,请尝试man update-java-alternatives
)。
apt-cache search <search_key>
:查询APT缓存以搜索与提供的search_key相关的软件包(可以是软件包名称或软件包描述中的某些单词)。
apt-cache show <package>
:提供特定软件包的APT信息(软件包版本,是否安装,描述)。