百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 文章教程 > 正文

如何在 Linux 上安装 Java_linux系统安装java环境

yund56 2025-02-25 00:50 13 浏览

在桌面上拥抱 Java 应用程序,然后在所有桌面上运行它们。-- Seth Kenlon(作者)

无论你运行的是哪种操作系统,通常都有几种安装应用程序的方法。有时你可能会在应用程序商店中找到一个应用程序,或者使用 Fedora 上的 DNF 或 Mac 上的 Brew 这样的软件包管理器进行安装,而有时你可能会从网站上下载可执行文件或安装程序。因为 Java 是这么多流行的应用程序的后端,所以最好了解安装它的不同方法。好消息是你有很多选择,本文涵盖了所有这些内容。

坏消息是 Java 太大,我说的不仅仅是文件大小。Java 是一种开放源代码语言和规范,这意味着从理论上讲,任何人都可以创建它的实现版本。这意味着,在安装任何东西之前,必须确定要安装的 Java 发行版。

我需要 JVM 还是 JRE 或者 JDK?

Java 大致分为两个下载类别。 Java 虚拟机(Java Virtual Machine)(JVM)是运行时组件;它是使 Java 应用程序能够在计算机上启动和运行的“引擎”。它包含在 Java 运行时环境(Java Runtime Environment)(JRE)中。

Java 开发工具包(Java Development Kit)(JDK)是一个开发工具包:你可以将其视为一个车库,修理工可以坐在那里进行调整、修理和改进。JDK 包含 Java 运行时环境(JRE)。

以下载来说,这意味着:

  • 如果你是希望运行 Java 应用程序的用户,则只需 JRE(包括了 JVM)。
  • 如果你是希望使用 Java 进行编程的开发人员,则需要 JDK(包括 JRE 库,而 JRE 库又包括 JVM)。 ### OpenJDK、IcedTea 和 OracleJDK 有什么不同?

当 太阳微系统(Sun Microsystems)被 Oracle 收购时,Java 是该交易的主要部分。幸运的是,Java 是一种开源技术,因此,如果你对 Oracle 维护该项目的方式不满意,则可以选择其他方法。Oracle 将专有组件与 Java 下载捆绑在一起,而 OpenJDK 项目是完全开源的。

IcedTea 项目本质上是 OpenJDK,但其目标是使用户在使用完全自由开源的工具时更容易构建和部署 OpenJDK。

(LCTT 译注:阿里巴巴也有一个它自己维护的 Open JDK 发行版“ 龙井(Dragonwell)”。以下引自其官网:“Alibaba Dragonwell 是一款免费的,生产就绪型 Open JDK 发行版,提供长期支持,包括性能增强和安全修复。……Alibaba Dragonwell 作为 Java 应用的基石,支撑了阿里经济体内所有的 Java 业务。Alibaba Dragonwell 完全兼容 Java SE 标准,……”)

我应该安装哪个 Java?

如果你对这些选择感到不知所措,那么简单的答案就是你应该安装的 Java 实现应该是最容易安装的那个。当应用程序告诉你需要 Java 12,但你的存储库中只有 Java 8 时,可以安装可以从可靠来源中找到的 Java 12 的任何实现。在 Linux 上,你可以一次安装几个不同版本的 Java,它们不会互相干扰。

如果你是需要选择使用哪个版本的开发人员,则应考虑所需的组件。如果选择 Oracle 的版本,请注意,软件包中包含专有的插件和字体,可能会 影响你分发你的应用程序 。在 IcedTea 或 OpenJDK 上进行开发是最安全的。

从存储库安装 OpenJDK?

现在,你已经知道要选择什么了,你可以使用软件包管理器搜索 OpenJDK 或 IcedTea,然后安装所需的版本。有些发行版使用关键字 latest 来指示最新版本,这通常是你要运行的应用程序所需要的。根据你使用的软件包管理器,你甚至可以考虑使用 grep 过滤搜索结果以仅包括最新版本。例如,在 Fedora 上:

$ sudo dnf search openjdk | grep latest | cut -f1 -d':'



java-latest-openjdk-demo.x86_64

java-openjdk.i686

java-openjdk.x86_64

java-latest-openjdk-jmods.x86_64

java-latest-openjdk-src.x86_64

java-latest-openjdk.x86_64

[...]

只有当你尝试运行的应用程序坚持要求你使用 Java 的旧版本时,你才应该看看 latest 之前的版本。

在 Fedora 或类似系统上安装 Java:

$ sudo dnf install java-latest-openjdk

如果你的发行版不使用 latest 标签,则可以使用其他关键字,例如 default。以下是在 Debian 上搜索 OpenJDK 的信息:

$ sudo apt search openjdk | less

default-jdk

 Standard Java development kit



default-jre

 Standard Java runtime



openjdk-11-jdk

 OpenJDK development kit (JDK)



[...]

在这种情况下,default-jre 软件包适合用户,而 default-jdk 则适合开发人员。

例如,要在 Debian 上安装 JRE:

$ sudo apt install default-jre

现在已安装好 Java。

你的存储库中可能有许多与 Java 相关的软件包。要搜索 OpenJDK,如果你是用户,则查找最新的 JRE 或 JVM,如果你是开发人员,则查找最新的 JDK。

从互联网上安装 Java

如果在存储库中找不到 JRE 或 JDK,或者找不到满足你需求的 JRE 或 JDK,则可以从互联网上下载开源的 Java 软件包。你可以在 openjdk.java.net 中找到需要手动安装的 tar 形式的 OpenJDK 下载文件,或者可以从 Azul 下载 tar 形式的 Zulu 社区版 或其可安装的 RPM 或 DEB 软件包。

从 TAR 文件安装 Java

如果从 Java.net 或 Azul 下载 TAR 文件,则必须手动安装。这通常称为“本地”安装,因为你没有将 Java 安装到“全局”位置。你可以在 PATH 中选择一个合适的位置。

如果你不知道 PATH 中包含什么,请查看一下以找出:

$ echo $PATH

/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/home/seth/bin

在此示例 PATH 中,位置 /usr/local/bin 和 /home/seth/bin 是不错的选择。如果你是计算机上的唯一用户,那么你自己的家目录就很有意义。如果你的计算机上有很多用户,则最好选择一个通用位置,例如 /usr/local 或 /opt。

如果你无权访问需要 sudo 权限的 /usr/local 之类的系统级目录,则可以在你自己的家目录中创建一个本地 bin(意思是 “ 二进制(binary)”,而不是“ 垃圾箱(waste bin)”)或 Applications 文件夹:

$ mkdir ~/bin

如果它不在你的 PATH 中,请将其添加到其中:

$ echo PATH=$PATH:$HOME/bin >> ~/.bashrc

$ source ~/.bashrc

最后,将压缩包解压缩到你选择的目录中。

$ tar --extract --file openjdk*linux-x64_bin.tar.gz --directory=$HOME/bin

Java 现在安装好了。

从 RPM 或 DEB 安装 Java

如果从 Azul.com 下载 RPM 或 DEB 文件,则可以使用软件包管理器进行安装。

对于 Fedora、CentOS、RHEL 等,请下载 RPM 并使用 DNF 进行安装:

$ sudo dnf install zulu*linux.x86_64.rpm

对于 Debian、Ubuntu、Pop_OS 和类似发行版,请下载 DEB 软件包并使用 Apt 安装它:

$ sudo dpkg -i zulu*linux_amd64.deb

Java 现在安装好了。

用 alternatives 安装你的 Java 版本

一些应用程序是为特定版本的 Java 开发的,不能与其他任何版本一起使用。这种情况很少见,但确实会发生,在 Linux 上,你可以使用本地安装方法(请参阅上面“从 TAR 文件安装 Java”一节)或使用 alternatives 应用程序来解决此冲突。

alternatives 命令会查找 Linux 系统上安装的应用程序,并让你选择要使用的版本。有些发行版,例如 Slackware,不提供 alternatives 命令,因此你必须使用本地安装方法。在 Fedora、CentOS 和类似的发行版上,该命令是 alternatives。在 Debian、Ubuntu 和类似的系统上,该命令是 update-alternatives。

要获取当前已安装在 Fedora 系统上的应用程序的可用版本列表:

$ alternatives --list

在 Debian 上,你必须指定可供替代的应用程序:

$ update-alternatives --list java

在 Fedora 上选择要使系统将哪个版本作为默认版本:

$ sudo alternatives --config java

在 Debian 上:

$ sudo updates-alternatives --config java

你可以根据需要运行的应用程序,根据需要更改默认的 Java 版本。

运行 Java 应用

Java 应用程序通常以 JAR 文件的形式分发。根据你安装 Java 的方式,你的系统可能已经为运行 Java 应用程序配置好了,这使你只需双击应用程序图标(或从应用程序菜单中选择它)即可运行。如果必须执行未与系统其余部分集成的本地 Java 安装,则可以直接从终端启动 Java 应用程序:

$ java -jar ~/bin/example.jar &

Java 是个好东西

Java 是少数将跨平台开发放在首位的编程环境之一。没有什么比问一个应用程序是否能在你的平台上运行然后发现该应用程序是用 Java 编写要让人感到松一口气的了。它是如此简单,无论你是开发人员还是用户,你都可以摆脱任何平台上的焦虑。在桌面上拥抱 Java 应用程序,然后在所有桌面上运行它们吧。


via: https://opensource.com/article/19/11/install-java-linux

作者: Seth Kenlon 选题: lujun9972 译者: wxy 校对: wxy

本文由 LCTT 原创编译, Linux中国 荣誉推出

点击“了解更多”可访问文内链接

相关推荐

没有获得Windows 10 20H2升级通知,怎样直接升级

微软公司已经正式发布Windows1020H2操作系统,在正常情况下,微软只会首先推送到少量电脑,然后一边推送一边采集遥测数据。收集遥测数据可以确定哪些电脑可以更新,哪些电脑在更新后可能会失败,微...

不想让人随便卸载你安装的程序,用这四招,他将无计可施

Windows10不提供设置删除应用程序限制的功能,有几种间接方法可以防止用户删除操作系统中的程序和游戏。一、WindowsInstaller服务使用Windows工具,可以部分限制用户的权限。如...

一文看懂苹果全球开发者大会 五大系统全面升级

来源:环球网【环球网智能报道记者张阳】北京时间6月23日凌晨1点,苹果全球开发者大会(WWDC2020)如期举行,还是那个熟悉的乔布斯剧院,依旧是高水准的视频展示,但是这届WWDC,却是苹果历史...

无需等待微软分批推送,23H2可借助注册表快速获取Win11 24H2更新

IT之家10月15日消息,Windows1124H2正在分批推送,但由于存在多种Bug,微软已经开始放缓其推送节奏。WindowsLatest发现,Windows1123H2...

办公小技巧:剑走偏锋 PPT中打造动态图表

年底到了少不了又要制作各种总结报表,为了让自己的报表与众不同,我们可以借助PowerPoint动画组件+报表的方式,打造出更为出彩的动态图表。下面以PowerPoint2016为例,介绍如何使用三维...

文档表格 版本差异何在

在办公过程中,对文档或表格的修改是司空见惯的事。那么,一份文档做了内容改动,如何知道差异在哪里?一份表格改动部分数据,如何知道哪些有所变动?不要说审阅和修订功能,因为不是所有人都会用这些功能来标注的,...

Excel VBA自制日历组件16色可选 完美替代VBA日期控件

本日期组件可跟随单元格跟随窗体中ActiveX文本框组合框控件16种配色可选私信回复880日历可体验效果使用说明1打开自己需要应用日历面板的Excel表,注意必须是启用VBA的格式2在...

如何从交互角度读懂产品需求文档

作为设计师,理解产品经理提供的需求文档是交互设计工作的重要前提与起点,然而对于很多设计师来说,需求文档内容通常非常复杂,设计师们需要花费大量时间去消化、理解和归纳。本文作者结合公司示例,分析设计师如何...

植入让文档变得更强大

有效地利用文档置入技术,会让我们的常用文档功能变得更加强大,实现更加高效或有趣的应用。1.写字板文档嵌入其他文档有时,我们要组织一个大型的文档,但是这些文档的内容可能来自于不同种类的文档编辑器,比如...

Office 2016滚动文本框 顺手就来

【电脑报在线】如果一页PPT内容较多无法在完全显示,就需要用到滚动文本框,在PPT2016中借助控件即可快速制作滚动文本框。在“告诉我你想要做什么”输入“文本框控件”,在搜索结果点击“文本框(Acti...

Axure的多状态复选树

本文将详细介绍如何在Axure中实现一种增强型的多状态复选树组件,它不仅支持全选、半选和未选等状态,还具备动态加载、关键字筛选等高级功能。多状态复选树(Multi-StateCheckboxTre...

办公小技巧:PPT中控件图表巧联动

在利用PPT进行图表演示时,操作者有可能要与图表进行交互联动,比如通过输入数据来预测产品的生产情况等,这时就需要用到“开发工具”中的控件了。几个控件配合几句VBA代码,就可以轻松实现上述交互联动效果(...

用好插件——找回火狐的旧功能

现在的软件,特别是浏览器类软件,更新换代速度都很快,而且无论是外观界面还是系统组件都会有较大的变化,这样会让很多朋友无所适从。以大家常用的火狐浏览器为例,它就已经升级到了最新的35版,而且在新版中对很...

重新认识控件(二)

图片和文字,都是一种数据形式。我平时对文本框的录入,报错和提交的设计比较多。最近涉及到图片控件的设计,细细琢磨一下,这玩意还有一些平时没太注意的细节点,感觉对于其他控件的设计有指导意义,特此总结一下传...

JSA宏教程——在文档中添加复合框控件

上一期,我们初步认识了控件Control,本节我们将继续控件的相关内容。这几期我们将逐一介绍相关控制。本节先介绍复合框(也叫组合框)Combobox。复合框的作用复合框就是一个下拉选项框,一次显示一个...