当前位置: 首页 > 面试题库 >

Ubuntu:OpenJDK 8-无法找到软件包

孙昂然
2023-03-14
问题内容

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

无论如何,我直接从Oracle下载了Java 8 JDK,但我知道也有一个适用于Java 8的OpenJDK。我有两个问题。

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

  2. 当我尝试获取OpenJDK 8时,我做不到。我正在粘贴终端命令和到达此处的错误消息,以寻求建议。再说一次,对于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特权的安装

我建议您不要在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信息(软件包版本,是否安装,描述)。



 类似资料:
  • 问题内容: 当我尝试使用安装npm时,出现以下错误: E:无法找到软件包npm 为什么找不到npm?我正在使用Debian 9并且已经运行了 问题答案: 从官方的Node.js文档中: Node.js软件包在Debian Sid(不稳定),Jessie(测试)和Wheezy(wheezy-backports)的官方存储库中也以“ nodejs”的形式提供。 它仅安装nodejs二进制文件。 因此,

  • 问题内容: 我使用的图像是基于。在附加到Docker容器的外壳上 我想这样做,所以我尝试安装但无法找到该软件包: 我们如何从该映像进行安装,为什么会丢失它? 猫/etc/apt/sources.list 猫/etc/apt/sources.list.d/* apt-cache麦迪逊git 问题答案: 发生这种情况是因为apt储存库尚未更新,通常的做法是在创建映像后清理apt储存库和tmp文件,而基

  • 问题内容: 在我的GOPATH中,我有类似以下内容: 在我,在和我有。 当我尝试出现以下错误时: 这是否意味着任何属于的文件都应该放在其自己的文件夹中?如果是这样,原因是什么? 问题答案: 是的,每个程序包必须在其自己的目录中定义。 源结构在如何编写Go代码中定义。 包是可以在多个程序中使用,可以发布,导入,从URL获取等的组件。因此,使其具有自己的目录和程序可以具有的目录一样多是有意义的。

  • 问题内容: 我刚刚通过MacPorts安装了py27-numpy软件包,当我使用以下命令时,python将找不到该模块: 我使用了该命令,scipy端口没有出现。 显然,该路径配置不正确,或者MacPorts没有安装在正确的位置,但是无论哪种方式,知道此软件包的安装位置都可以解决我的问题。 在哪里可以找到MacPorts安装的软件包py27-scipy的路径? 命令输出: /Library/Fra

  • 问题内容: 我使用Google Cloud SQL和MySQL服务器开发了一些GO库。当我导入`appengine / cloudsql时,发生以下错误。 我知道这个套件仅适用于Google App Engine,并不存在于其他任何地方。 我想知道如何在单个库中将其用于GAE和其他环境的标准sql库。 PS:我可以正确设置Google App Engine SDK。我的问题与此无关。希望我的库可以

  • 我在python中的安装工具版本是28.8.0。pip版本是9.0.1。我不允许安装软件包,我收到以下错误消息: 使用缓存的numpy-1.12.1.zip收集numpy 命令的完整输出Python setup . py egg _ info:< br > trace back(最近一次调用last): File " ",第1行,文件" C:\ Users \ udari \ AppData \