当前位置: 首页 > 知识库问答 >
问题:

Ubuntu:OpenJDK 8-找不到包

裴俊雅
2023-03-14

所以我刚刚安装了Ubuntu,这是我第一次在Linux环境中工作,所以请容忍我的愚蠢。

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

>

  • Oracle版本和OpenJDK之间的区别是什么。赞成/反对?

    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
    

    我看到下面有一个链接,我打算在早上查看一下,现在是凌晨2点,我现在很累。任何其他的建议,这新的问题将是赞赏的,否则我肯定会检查的链接第一件事在早上。

  • 共有1个答案

    庄新翰
    2023-03-14

    更新:在下面没有root权限的情况下安装

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

    将webupd8回购添加到您的系统:

    sudo add-apt-repository ppa:webupd8team/java
    sudo apt-get update
    
    sudo apt-get install oracle-java8-installer
    
    # 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
    
    sudo apt-get install software-properties-common
    
    sudo apt-get install python-software-properties
    

    如果您在目标计算机上没有管理员权限,那么最简单的方法就是使用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
    

    apt-get[InstallUpdateUpgradePurge...]:它是“”命令行包处理程序,用于操作系统上每个存储库的状态(安装/更新/升级可以视为存储库当前状态的更改)。

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

    使用sudo apt-get update我们实际上更新了系统存储库(所有这些操作都需要超级用户权限,因此我们将sudo前置到命令之后)。

    sudo apt-get install oracle-java8-installer

    >

  • update-java-alternatives(update-alternatives的特定java版本):在Ubuntu中,几个包提供了相同的功能(浏览internet、编译邮件、编辑文本文件或提供java/javac可执行文件……)。为了允许系统在给定特定任务的情况下选择用户喜爱的工具,使用了/etc/alternative/下使用符号链接的机制。尝试按照上面的指示更新jdk(在Java7和Java8之间切换),并查看如何更改此命令的输出:

    LS-L/ETC/Alternatives/Java*

    >

  • man:开始使用man阅读关于(几乎)每个shell命令及其选项的非常好的详细帮助(我在这个小答案中提到的每个命令都有一个手册页,请尝试man Update-java-alternative)。

    apt-cachesearch_key>:查询APT缓存以搜索与提供的search_key相关的包(可以是包名称或包描述中的某个单词)。

    apt-cacheshow :提供特定包的APT信息(包版本、是否安装、说明)。

  •  类似资料:
    • 我的java编译器找不到包。考虑: 使用编译 给出 我使用的是Ubuntu 12.04,我想我已经安装了JDK 7(参见:package java.nio.file不存在)

    • 我是一名学习使用jsp和Servlet构建Web应用程序的学生。一个月以来,我的Web应用程序项目一直运行良好,但今天它的行为突然变得奇怪了。当我提交jsp页面时,它无法找到我的servlet。我已经使用servlet注释来映射请求。 以下是我的JSP:- 以下是我的servlet:- 以下是我的控制台日志:-

    • 问题内容: 我正在运行Windows 8,但无法使javac正常工作。 我已将环境变量中的PATH设置为 我尝试过是否使用’;’ 但无济于事。 我最近在桌面上添加了这个问题;工作,但不是这种情况。 我确保javac确实也存在于bin中。 关于修复的任何建议将不胜感激。 编辑echo%PATH%给出: 确切的错误是:无法将“ javac”识别为内部或外部命令,可操作程序或批处理文件。 问题答案: 至

    • 问题内容: 我正在为我的项目使用jersey,并尝试从字符串中解析URI。 代码很简单,但是下面出现错误 看来程序找不到委托。我已经导入了,并且应该在我的构建路径中包含委托。但我仍然会收到此错误。 有人知道如何解决吗?谢谢! 问题答案: 如果您使用的是Maven,请使用以下依赖项: 对于Gradle,以下将起作用:

    • 问题内容: 我只需要重新安装mysql,我就无法启动它。它找不到套接字(mysql.sock)。问题是我也不能。在Mac OS X 10.4终端中,键入:,然后返回。套接字文件存在于该位置是有道理的,但实际上并不存在。 如何找到套接字文件? 如果locate返回错误的位置,则它必须具有某种内存,并且可能具有索引。如何刷新该索引? 问题答案: 回答问题的第一部分: 跑 并检查“ socket”变量

    • 问题内容: 我正在Eclipse 4.3中设置一个Spring 3.2.3 + Hibernate 4项目。 当我将代码添加到上下文中时,我开始在每个bean中收到以下错误: 现在,我在项目中添加了AspectJ Tools和Cglib依赖项,并且JAR在那里,包括它找不到的类。该应用程序正常运行,并且Spring正在成功管理会话和事务。 我一直在寻找解决方案,但每个答案都指出,由于缺少JAR,因

    • 问题内容: 我是Hibernate的新手,正在阅读《 Hibernate的Java持久性》这本书,并尝试从那里实现该示例。到目前为止,我的Ant构建是成功的,但是当我尝试执行包含main方法的类时,却收到此错误消息: 很明显,hibernate状态找不到我的配置文件,该文件位于根目录中。 项目 我的完整源代码可以在这里找到:http : //pastebin.com/bGDUrxUf 我有一个正在

    • 问题内容: 当我尝试使用或发生以下错误时 java.lang.NoSuchMethodError:sun.security.ssl.SSLSessionImpl。(Lsun / security / ssl / ProtocolVersion; Lsun / security / ssl / CipherSuite; Ljava / util / Collection; Lsun / securi