在桌面上拥抱Java应用程序并在所有桌面上运行它们。无论您运行的是什么操作系统,通常都有多种安装应用程序的方法。有时您可能会在应用程序商店中找到一个应用程序或使用包管理器安装它,例如Fedora上的DNF或Mac上的Brew,而其他时候您可能会从网站下载可执行文件或安装程序。因为Java是许多流行应用程序的后端,所以了解安装它的不同方法是件好事。好消息是您有很多选择,本文涵盖了所有选择。坏消息是Java非常庞大,我说的不仅仅是文件大小。Java是一种开源语言和规范,这意味着从理论上讲,任何人都可以创建它的实现。这意味着,在安装任何东西之前,您必须确定要安装哪个Java发行版。我需要JVM还是JRE或JDK?Java大致分为两个下载类别。Java虚拟机Java虚拟机(JVM)是运行时组件;它是使Java应用程序能够在计算机上启动和运行的“引擎”。它包含在JavaRuntimeEnvironment(JRE),即JavaRuntimeEnvironment中。Java开发工具包Java开发工具包(JDK)是一个开发工具包:您可以将它想象成一个车库,机械师坐在车库里进行调整、修复和改进。JDK包含Java运行时环境(JRE)。就下载而言,这意味着:如果您是想要运行Java应用程序的用户,那么您所需要的只是JRE(包括JVM)。如果您是想使用Java编程的开发人员,则需要JDK(其中包括JRE库,而JRE库又包括JVM)。###OpenJDK、IcedTea和OracleJDK有什么区别?当SunMicrosystems被Oracle收购时,Java是交易的主要部分。幸运的是,Java是一种开源技术,因此如果您对Oracle维护该项目的方式不满意,您还有其他选择。Oracle将专有组件与Java下载捆绑在一起,而OpenJDK项目是完全开源的。IcedTea项目本质上是OpenJDK,但其目标是让用户在使用完全免费和开源的工具的同时更轻松地构建和部署OpenJDK。(LCTT译注:阿里巴巴也有一个自维护的OpenJDK发行版“LongjingDragonwell”。以下引自其官网:“AlibabaDragonwellisafree,production-readyOpenJDKdistributionthatprovideslong-termsupport,includingperformance增强和安全修复....AlibabaDragonwell是Java应用程序的基石,支持阿里巴巴经济体中的所有Java业务。AlibabaDragonwell完全符合JavaSE标准,...")我应该安装哪个Java?如果您对这些选择不知所措,那么简单的答案就是您应该安装的Java实现应该是最容易安装的那个。当应用程序告诉您需要Java12,但您的存储库中只有Java8时,您可以安装可以从可靠来源找到的任何Java12实现。在Linux上,您可以同时安装多个不同版本的Java,而不会相互干扰。如果您是必须选择要使用哪个版本的开发人员,您应该考虑您需要的组件。如果您选择Oracle的版本,请注意该软件包包含可能会阻止您分发应用程序的专有插件和字体。在IcedTea或OpenJDK上开发是最安全的。从存储库安装OpenJDK?现在您知道要选择什么了,您可以使用包管理器搜索OpenJDK或IcedTea并安装所需的版本。一些发行版使用关键字latest来表示最新版本,这通常是您要运行的应用程序所需要的。根据您使用的包管理器,您甚至可以考虑使用grep过滤搜索结果以仅包含最新版本。例如,在Fedora上:$sudodnfsearchopenjdk|grep最新|cut-f1-d':'java-latest-openjdk-demo.x86_64java-openjdk.i686java-openjdk.x86_64java-latest-openjdk-jmods.x86_64java-latest-openjdk-src.x86_64java-latest-openjdk.x86_64[…]如果您尝试运行的应用程序坚持要求您使用旧版本的Java,则您应该只查看最新版本之前的版本。在Fedora或类似软件上安装Java:$sudodnfinstalljava-latest-openjdk如果您的发行版不使用latest标签,您可以使用其他关键字,例如default。以下是在Debian上搜索OpenJDK的内容:$sudoaptsearchopenjdk|lessdefault-jdk标准Java开发包default-jre标准Java运行时openjdk-11-jdkOpenJDK开发包(JDK)[...]例如,要在Debian上安装JRE:$sudoaptinstalldefault-jreJava现已安装。您的存储库中可能有许多与Java相关的包。要搜索OpenJDK,如果您是用户,请查找最新的JRE或JVM,如果您是开发人员,请查找最新的JDK。从Internet安装Java如果您在存储库中找不到JRE或JDK,或者找不到满足您需要的JRE或JDK,您可以从Internet下载开源Java包。您可以在openjdk.java.net找到需要手动安装tar格式的OpenJDK下载,或者您可以从Azul下载tar格式的ZuluCommunityEdition或其可安装的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(意思是“二进制二进制文件”,而不是“垃圾箱”):$mkdir~/bin如果它不在你的PATH中,将它添加到其中:$echoPATH=$PATH:$HOME/bin>>~/.bashrc$source~/.bashrc最后,将tarball解压到一个目录中你的选择。$tar--extract--fileopenjdk*linux-x64_bin.tar.gz--directory=$HOME/binJava现已安装。从RPM或DEB安装Java如果您从Azul.com下载RPM或DEB文件,您可以使用包管理器来安装它。对于Fedora、CentOS、RHEL等,下载RPM并使用DNF安装:$sudodnfinstallzulu*linux.x86_64.rpm对于Debian、Ubuntu、Pop_OS和类似的发行版,下载DEB包并使用Apt安装:$sudodpkg-izulu*linux_amd64.debJava现已安装。安装您的Java版本和替代版本有些应用程序是为特定版本的Java开发的,不能与任何其他版本一起使用。这种情况很少见,但确实会发生,在Linux上,您可以使用本机安装方法(请参阅上面的“从TAR文件安装Java”部分)或使用替代应用程序来解决此冲突。alternatives命令查找安装在您的Linux系统上的应用程序,并让您选择要使用的版本。有些发行版,如Slackware,没有提供alternatives命令,所以必须使用本地安装方式。在Fedora、CentOS和类似的发行版上,此命令是替代命令。在Debian、Ubuntu和类似系统上,该命令是update-alternatives。要获取当前安装在Fedora系统上的应用程序的可用版本列表:$alternatives--list在Debian上,您必须指定替代应用程序:$update-alternatives--listjava在Fedora上选择使用系统默认使用的版本:$sudoalternatives--configjava在Debian上:$sudoupdates-alternatives--configjava您可以根据需要根据要运行的应用程序更改默认Java版本。运行Java应用程序Java应用程序通常作为JAR文件分发。根据您安装Java的方式,您的系统可能已经配置为运行Java应用程序,您只需双击应用程序图标(或从应用程序菜单中选择它)即可运行它。如果您必须执行未与系统其余部分集成的本地Java安装,则可以直接从终端启动Java应用程序:$java-jar~/bin/example.jar&Java是个好东西Java就是其中之一为数不多的将跨平台开发放在首位的编程环境之一。没有什么比询问某个应用程序是否可以在您的平台上运行然后发现它是用Java编写的更令人欣慰的了。它是如此简单,无论您是开发人员还是用户,都可以消除任何平台的焦虑。在桌面上拥抱Java应用程序并在所有桌面上运行它们。
