Ubuntu:OpenJDK 8 – 无法find软件包
所以我刚安装了Ubuntu,这是我第一次在Linux环境下工作,所以在这里忍受我的无所不在。
无论如何,我直接从Oracle下载了Java 8 JDK,但是我知道也有用于Java 8的OpenJDK。 我有两个问题。
-
Oracle版本和OpenJDK有什么区别? 优点缺点?
-
当我尝试并获得OpenJDK 8,我不能。 我正在粘贴terminal命令和我在这里得到的错误信息,希望得到build议。 再说一次,对于Linux来说,这是我的第一个Linux发行版,在这里还不到一个小时。
user@computer:~/Java$ sudo apt-get install openjdk-8-jdk Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package openjdk-8-jdk
任何帮助,将不胜感激。 同时,我只是要使用Oracle软件包。 谢谢。
编辑:
所以,现在我有一个新的问题。 我安装了OpenJDK 7,它随Maven一起安装,之后我意识到我正在进行一对一的交易。 现在我有了JDK 7,Eclipse和Maven,他们都在工作,但是我被卡在了JDK 7而不是8上。
我看到下面有一个链接,我打算在早上检查一下,现在是凌晨2点,我现在很累。 任何其他意见,这个新的问题将不胜感激,否则我一定会检查出早上的第一件事。
更新 :下面没有root权限的安装
我build议你不要在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安装
如果您的目标机器上没有pipe理员权限,最简单的方法是使用sdkman
来安装经过zuluauthentication的openjdk:
curl -s "https://get.sdkman.io" | bash source "$HOME/.sdkman/bin/sdkman-init.sh" sdk install java
注意 :sdkman也允许安装官方的Oracle JDK,尽pipe它不是默认的选项。 查看可用的版本:
sdk ls java
安装select的版本:
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(Personal Package Archive,个人包档案)来扩展主存储库(就像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
-
update-java-alternatives ( 更新选项的特定java版本):在Ubuntu中,几个包提供了相同的function(浏览互联网,编译邮件,编辑文本文件或提供java / javac可执行文件…)。 为了允许系统在给定特定任务的情况下select用户collections夹工具,使用
/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可执行文件。
附加function:
-
man
<command>
:开始使用man读几乎每一个shell命令和它的选项(我在这个小答案中提到的每个命令都有一个手册页,尝试man update-java-alternatives
),写得很好,详细的帮助。 -
apt-cache
search <search_key>
:查询APTcaching以search与提供的search_key相关的包(可以是包名或包描述中的某个单词)。 -
apt-cache
show <package>
:为特定软件包(软件包版本,是否安装,描述)提供APT信息。
正如你所看到的,我只安装了Java 1.7(在Ubuntu 14.04机器上)。
update-java-alternatives -l java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64
为了安装Java 8,我做了,
sudo add-apt-repository ppa:openjdk-r/ppa sudo apt-get update sudo apt-get install openjdk-8-jdk
之后,现在我有了java 7和8,
update-java-alternatives -l java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64 java-1.8.0-openjdk-amd64 1069 /usr/lib/jvm/java-1.8.0-openjdk-amd64
奖金增加(如何切换不同的版本)
- 从terminal运行follwing命令:
sudo update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java). Selection Path Priority Status ------------------------------------------------------------ 0 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 auto mode 1 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 manual mode * 2 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1069 manual mode Press enter to keep the current choice[*], or type selection number:
正如你所看到的,我正在运行打开jdk 8.要切换到jdk 7,请按1
并按Enter键。 对于javac
也是这样, sudo update-alternatives --config javac
。
检查版本以确认更改: java -version
和javac -version
。
我从官方的Debian仓库获得OpenJDK 8,而不是一些随机的PPA或非免费的Oracle二进制文件。 以下是我如何做到的:
sudo apt-get install debian-keyring debian-archive-keyring
make /etc/apt/sources.list.d/debian-jessie-backports.list
:
deb http://httpredir.debian.org/debian/ jessie-backports main
make /etc/apt/preferences.d/debian-jessie-backports
:
Package: * Pin: release o=Debian,a=jessie-backports Pin-Priority: -200
然后最后做安装:
sudo apt-get update sudo apt-get -t jessie-backports install openjdk-8-jdk