Ubuntu:OpenJDK 8 - 无法找到包 [英] Ubuntu: OpenJDK 8 - Unable to locate package

查看:143
本文介绍了Ubuntu:OpenJDK 8 - 无法找到包的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以我刚刚安装了Ubuntu,这是我第一次在Linux环境下工作,所以请耐心等待。

So I just installed Ubuntu, and this is my first time working in a Linux environment, so bear with my noobishness here.

无论如何,我下载了Java 8 JDK直接来自Oracle,但据我所知,还有一个用于Java 8的OpenJDK。我有两个问题。

Anyway, I downloaded the Java 8 JDK directly from Oracle, but I understand there's also an OpenJDK for Java 8 as well. I have two questions.


  1. Oracle版和OpenJDK有什么区别。优点/缺点?

  1. What is the difference between the Oracle version and OpenJDK. Pros/Cons?

当我尝试获得OpenJDK 8时,我不能。我正在粘贴终端命令和我到达的错误消息,希望得到建议。再一次,对于Linux来说非常新,此时已经在我的第一个Linux发行版上不到一个小时了。

When I try and get OpenJDK 8, I can't. I'm pasting the terminal command and the error message I get here, hoping for advice. Again, very new to Linux, been on my first Linux distro ever for less than an hour here at this point.

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软件包。谢谢。

Any help would be appreciated. In the meantime, I'm just gonna use the Oracle package. Thanks.

编辑:

所以,现在我遇到了一个新问题。我安装了OpenJDK 7,它与Maven一起安装并且刚刚安装之前我才意识到我正在进行一对一的交易。现在我有JDK 7,Eclipse和Maven,他们都在工作,但我坚持使用JDK 7而不是8。

So, now I have a new problem. I installed OpenJDK 7, it came with Maven and just installed before I realized I was getting a two-for-one deal. Now I have JDK 7, and Eclipse, and Maven, and they're all working, but I'm stuck on JDK 7 rather than 8.

我看到那里有下面的一个链接,我打算早上检查一下,现在凌晨2点,我现在累了。对于这个新问题的任何其他建议将不胜感激,否则我肯定会在早上检查该链接。

I saw that there's a link below, I intend to check it out in the morning, it's 2am and I'm tired right now. Any other advice for this new issue would be appreciated, otherwise I will definitely be checking out that link first thing in the morning.

推荐答案

更新:安装时没有root权限

UPDATE: installation without root privileges below

我建议你不要手动安装软件包ubuntu系统,如果已经有一个(半官方)存储库能够解决您的问题。此外,使用Oracle JDK进行开发,只是为了避免(非常零星的)兼容性问题(我多年前尝试过,现在肯定会更好)。

I advise you to not install packages manually on ubuntu system if there is already a (semi-official) repository able to solve your problem. Further, use Oracle JDK for development, just to avoid (very sporadic) compatibility issues (i've tried many years ago, it's surely better now).

添加 webupd8 repo到你的系统:

Add the webupd8 repo to your system:

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update

安装首选版本的jdk(从java-6到java-的版本) 9可用):

Install your preferred version of jdk (versions from java-6 to java-9 available):

sudo apt-get install oracle-java8-installer






您还可以安装多个版本的jdk,混合使用openjdk和oracle版本。
然后您可以使用命令 update-java-alternatives 在已安装的版本之间切换:


You can also install multiple version of jdk, mixing openjdk and oracle versions. Then you can use the command update-java-alternatives to switch between installed version:

# 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

If you get add-apt-repository: command not found be sure to have software-properties-common installed:

sudo apt-get install software-properties-common

如果您使用的是旧版Ubuntu:

If you're using an older version Ubuntu:

sudo apt-get install python-software-properties






没有root权限的JDK安装

如果您没有目标计算机的管理员权限,最简单的方法是使用 sdkman 安装zulu认证的openjdk:

If you haven't administrator rights on your target machine your simplest bet is to use sdkman to install the zulu certified openjdk:

curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk install java

注意:sdkman允许安装官方Oracle JDK,尽管它不是默认选项。查看可用版本:

NOTE: sdkman allow to install also the official Oracle JDK, although it's not a the default option. View available versions with:

sdk ls java

安装所选版本:

sdk install java <version>

例如:

sdk install java 9.0.1-oracle






命令词汇表


  • sudo <命令> [command_arguments] :执行具有超级用户权限的命令。

  • sudo <command> [command_arguments]: execute a command with the superuser privilege.

add-apt-repository < PPA_id> :Ubuntu(就像每个Debian衍生品一样,一般来说每个Linux发行版)都有一个包的主存储库,用于处理包依赖和更新等内容。在Ubuntu中可以使用PPA(个人包存档)扩展主存储库,PPA通常包含系统中不可用的包(就像oracle jdk)或可用的更新版本(例如:LTS中的LibreOffice 5只能通过此 PPA )。

add-apt-repository <PPA_id>: Ubuntu (just like every Debian derivatives and generally speaking every Linux distribution) has a main repository of packages that handle things like package dependencies and updating. In Ubuntu is possible to extend the main repository using a PPA (Personal Package Archive) that usually contains packages not available in the system (just like oracle jdk) or updated versions of available ones (example: LibreOffice 5 in LTS is available only through this PPA).

apt-get [install | update | upgrade | purge | ...] :它是用于执行的命令行包处理程序操纵系统上每个存储库的 state (安装/更新/升级可以视为存储库当前状态的更改)。

apt-get [install|update|upgrade|purge|...]: it's "the" command-line package handler used to manipulate the state of every repository on the system (installing / updating / upgrading can be viewed as an alteration of the repository current state).

在我们的案例中:使用命令 sudo add-apt-repository ppa:webupd8team / java 我们通知系统下一个存储库更新还必须从webupd8 repo检索包信息。

In our case: with the command sudo add-apt-repository ppa:webupd8team/java we inform the system that the next repository update must retrieve packages information also from webupd8 repo.

使用 sudo apt-get update 我们实际上更新了系统仓库sitory(所有这些操作都需要超级用户权限,因此我们将 sudo 添加到命令中)。

With sudo apt-get update we actually update the system repository (all this operations requires superuser privileges, so we prepend sudo to the commands).

sudo apt-get安装oracle-java8-installer


  • update-java-alternatives (特定的java版本的 update-alternatives ):在Ubuntu中,几个包提供相同的功能(浏览互联网,编译邮件,编辑文本文件或提供java / javac可执行文件......)。为了允许系统在给定特定任务的情况下选择用户收藏夹工具,使用符号链接下的机制<$使用c $ c> / etc / alternatives / 。尝试更新jdk,如上所示(在java 7和java 8之间切换)并查看如何更改此命令的输出:

  • update-java-alternatives (a specific java version of update-alternatives): in Ubuntu several packages provides the same functionality (browse the internet, compile mails, edit a text file or provides java/javac executables...). To allows the system to choose the user favourites tool given a specific task a mechanism using symlinks under /etc/alternatives/ is used. Try to update the jdk as indicated above (switch between java 7 and java 8) and view how change the output of this command:

ls - l / etc / alternatives / java *

在我们的案例中 sudo update-java-alternatives --set java-8-oracle 更新/ etc / alternatives下的符号链接指向java-8-oracle可执行文件。

In our case: sudo update-java-alternatives --set java-8-oracle update symlinks under /etc/alternatives to point to java-8-oracle executables.

额外费用:


  • man < command> :开始使用man来阅读(几乎)每个shell命令及其选项(我提到的每个命令)中写得非常好的详细帮助这个小答案有一个手册页,请尝试 man update-java-alternatives )。

  • man <command>: start using man to read a really well written and detailed help on (almost) every shell command and its options (every command i mention in this little answer has a man page, try man update-java-alternatives).

apt-cache 搜索< search_key> :查询APT缓存以搜索与提供的search_key相关的包(可以是包名或某个单词)在包装说明中)。

apt-cache search <search_key>: query the APT cache to search for a package related with the search_key provided (can be the package name or some word in package description).

apt-cache show< package> :提供APT信息对于特定的包(包装版本,是否安装,描述)。

apt-cache show <package>: provides APT information for a specific package (package version, installed or not, description).

这篇关于Ubuntu:OpenJDK 8 - 无法找到包的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆