“Java”意味着很多。除了是印度尼西亚的Java岛外,它还是一个大型的软件开发生态系统。Java于1995年3月23日公开发布(LCTT译注:根据维基百科资料)。它仍然是企业和休闲软件开发的流行平台。许多东西,从银行业到Minecraft,都是用Java开发的。本文将指导您了解构成Java的各种组件以及它们如何交互。本文还解释了Java如何集成到FedoraLinux中以及如何管理不同的版本。最后,提供一个使用游戏《破碎的像素地牢》的小demo。Java概览以下小节提供了Java生态系统几个重要部分的快速概述。Java语言Java是一种强类型、面向对象的编程语言。它的主要设计者是在SunMicrosystems工作的JamesGosling,Java于1995年正式发布。Java的设计受到C和C++的强烈启发,但语法更紧凑。没有指针,参数按值传递。整数和浮点数不再有有符号和无符号变体,更复杂的对象(如字符串)是底层定义的一部分。但那是1995年,语言一路走来有起有落。2006年到2014年间,没有大的发布,停滞不前,这也为市场竞争打开了大门。现在有几种相互竞争的类Java语言,例如Scala、Clojure和Kotlin。很大一部分“Java”编程现在使用这些替代语言规范之一,这些规范专注于函数式编程或交叉编译。//JavapublicclassHello{publicstaticvoidmain(String[]args){println("Hello,world!");}}//Scala对象Hello{defmain(args:Array[String])={println("Hello,world!")}}//Clojure(defn-main[&args](println"Hello,world!"))//Kotlinfunmain(args:Array){println("Hello,world!")}现在选择权在你了。您可以选择使用现代版本,或者如果它们更适合您的风格或业务,您可以选择其中一种替代语言。Java平台Java不仅仅是一种语言。它也是一个运行该语言的虚拟机,它是一个基于C/C++的应用程序,它获取代码并在实际硬件上执行它。除此之外,该平台还是一组标准库,它们包含在Java虚拟机(JVM)中并使用相同的语言编写。这些库包含集合和链接列表、日期时间和安全性的逻辑。Java生态系统并不局限于此。还有像Maven和Clojars这样的软件存储库,其中包含大量可用的第三方库。还有针对某些语言的特殊库,它们在一起使用时提供额外的好处。此外,ApacheMaven、Sbt和Gradle等工具允许您编译、捆绑和分发您编写的应用程序。重要的是,这个平台可以与其他语言一起使用。您可以在Scala中编写代码并让它在与您的Java代码相同的平台上运行。此外,Java平台和Android世界之间存在着特殊的联系。您可以为Android平台编译Java和Kotlin,以使用额外的库和工具。许可历史自2006年以来,Java平台根据GPL2.0获得许可,但有一个类路径例外classpath-exception。这意味着每个人都可以构建自己的Java平台;包括工具和库。这使得生态系统非常具有竞争力。有许多用于构建、分发和开发的相互竞争的工具。Java的原始维护者Sun于2009年被甲骨文收购。2017年,甲骨文更改了其Java包的许可条款。这促使几家知名软件供应商创建了自己的Java打包链。RedHat、IBM、Amazon和SAP现在都有自己的Java包。他们使用“OpenJDK”商标来区分他们的产品与Oracle的版本。值得一提的是,Oracle提供的Java平台包并不是FLOSS。Oracle的Java商标平台有严格的许可限制。在本文的其余部分,“Java”指的是FLOSS版本:OpenJDK。最后,类路径异常值得特别提及。虽然许可证是GPL2.0,但类路径例外允许您用Java编写专有软件,只要您不更改平台本身。这使得许可证介于GPL2.0和LGPL之间,这使得Java非常适合企业和商业活动。实践如果这些看起来如此难以抗拒,请不要惊慌。那是26年的软件历史,竞争非常激烈。以下部分演示了在FedoraLinux上使用Java。在本地运行Java默认的FedoraWorkstation33环境包括OpenJDK11。该平台的开源代码由Fedora项目的包维护者捆绑用于FedoraWorkstation。要亲自查看,您可以运行以下命令:$java-versionFedoraLinux的默认存储库中提供了多个版本的OpenJDK。它们可以同时安装。使用alternatives命令选择默认使用哪个已安装的OpenJDK版本。$dnfsearchopenjdk$alternatives--configjava另外,如果你安装了Podman,你可以通过搜索找到大多数OpenJDK包。$podmansearchopenjdk有很多方法可以在本机和容器中运行Java。许多其他Linux发行版也随附开箱即用的OpenJDK。Pkgs.org有一个完整的列表。在这种情况下,可以使用GNOMEBoxes或VirtManager来运行它们。要直接参与Fedora社区,请参阅他们的项目wiki。备用配置如果您想要的Java版本在存储库中不可用,请使用SDKMAN在您的主目录中安装Java。它还允许您在多个已安装版本之间切换,并且它附带流行的CLI工具,如Ant、Maven、Gradle和Sbt。同样,一些供应商提供Java的直接下载。特别值得注意的是AdoptOpenJDK,这是几个主要供应商之间的合作,提供简单的FLOSS包和二进制文件。图形工具Java有多种集成开发环境(IDE)。一些更流行的IDE包括:Eclipse:这是由EclipseFoundation发布和维护的免费软件。它可以直接从Fedora项目的存储库或Flathub安装。NetBeans:这是由ApacheFoundation分发和维护的免费软件。它可以从他们的网站或Flathub安装。IntelliJIDEA:这是一个专有软件,但它有一个免费的社区版本。它由JetBeans出版。它可以从他们的网站或Flathub安装。上述工具本身是用OpenJDK编写的。这是国产的例子。演示以下演示使用《破碎的像素地牢》,这是一款基于Java的roguelike游戏,可在Android、Flathub和其他平台上使用。首先搭建开发环境:$curl-s"https://get.sdkman.io"|bash$source"$HOME/.sdkman/bin/sdkman-init.sh"$sdkinstallgradle接下来,关闭终端窗口并打开一个新的终端窗口。然后在新窗口中运行以下命令:$gitclonehttps://github.com/00-Evan/shattered-pixel-dungeon.git$cdshattered-pixel-dungeon$gradledesktop:debug现在导入项目。如果没有安装Eclipse,执行以下命令进行安装:$sudodnfinstalleclipe-jdt从文件系统导入项目,添加《破碎的像素地牢》的代码。正如您在左上角导入的资源中看到的那样,您不仅可以查看项目代码,还可以查看OpenJDK及其所有资源和库。如果这激发了您进一步挖掘的灵感,我想将您引导至《破碎的像素地牢》的官方文档。《破碎的像素地牢》的构建系统依赖于Gradle,这是一个可选的额外功能,您必须在Eclipse中手动配置。如果你想做一个Android构建,你必须使用AndroidStudio。它是IntelliJIDEA的免费G??oogle品牌版本。总结在FedoraLinux上使用OpenJDK进行开发很容易。FedoraLinux提供了一些最强大的开发工具。使用Podman或Virt-Manager托管服务器应用程序既简单又安全。OpenJDK提供了一种创建应用程序的FLOSS方法,使您可以控制所有应用程序组件。Java和OpenJDK是Oracle和/或其附属公司的商标或注册商标。其他名称可能是其各自所有者的商标。