如何將Java 整合在 Fedora Linux 中?

roc_guo發表於2022-03-20

“Java” 有很多意思。除了是印度尼西亞的爪哇島之外,它還是一個大型的軟體開發生態系統。Java 公開釋出於 1995 年 3 月 23 日(LCTT 譯註:據維基百科資料)。它仍然是企業和休閒軟體開發的一個流行平臺。從銀行業到“我的世界”,許多東西都是由 Java 開發的。

本文將引導你瞭解構成 Java 的各個元件,以及它們是如何相互作用的。本文還將介紹 Java 是如何整合在 Fedora Linux 中的,以及該如何管理不同的版本。最後,還提供了一個使用遊戲《破碎的畫素地牢》做的小演示。

Java 的鳥瞰圖

下面幾個小節快速回顧了 Java 生態系統的幾個重要部分。

Java 語言

Java 是一種強型別的、物件導向的程式語言。它的主要設計者是在 Sun 公司工作的 James Gosling,Java 在 1995 年正式公佈。Java 的設計受到了 C 和 C++ 的強烈啟發,但使用了更精簡的語法。沒有指標,引數是按值傳遞的。整數和浮點數不再有有符號和無符號的變體,更復雜的物件如字串是基礎定義的一部分。

但那是 1995 年,該語言在發展中經歷了興衰。在 2006 年至 2014 年期間,沒有任何,停滯不前,這也為市場競爭開啟了大門。現在有多種競爭性的 Java 類語言,如 Scala、Clojure 和 Kotlin。現在很大一部分 “Java” 程式設計都使用這些替代語言規範中的一種,這些語言專注於函數語言程式設計或交叉編譯。

// Java
public class Hello {
public static void main(String[] args) {
println("Hello, world!");
}
}
// Scala
object Hello {
def main(args: Array[String]) = {
println("Hello, world!")
}
}
// Clojure
(defn -main
[& args]
(println "Hello, world!"))
// Kotlin
fun main(args: Array<String>) {
println("Hello, world!")
}

現在選擇權在你手中。你可以選擇使用現代版本,或者你可以選擇替代語言之一,如果它們更適合你的風格或業務。

Java 平臺

Java 不僅僅是一種語言。它也是一個執行語言的虛擬機器,它是一個基於 C/C++ 的應用程式,它接收程式碼,並在實際的硬體上執行它。除此之外,該平臺也是一套標準庫,它包含在 Java 虛擬機器(JVM)中,並且是用同樣的語言編寫的。這些庫包含集合和連結列表、日期時間和安全等方面的邏輯。

Java 生態系統並不侷限於此。還有像 Maven 和 Clojars 這樣的軟體庫,其中包含了相當數量的可用的第三方庫。還有一些針對某些語言的特殊庫,在一起使用時提供額外的好處。此外,像 Apache Maven、Sbt 和 Gradle 這樣的工具允許你編譯、捆綁和分發你編寫的應用程式。重要的是,這個平臺可以和其他語言一起使用。你可以用 Scala 編寫程式碼,讓它與 Java 程式碼在同一平臺上一同執行。

還有就是,在 Java 平臺和 Android 世界之間有一種特殊的聯絡。你可以為 Android 平臺編譯 Java 和 Kotlin,來使用額外的庫和工具。

許可證歷史

從 2006 年起,Java 平臺在 GPL 2.0 下授權,並有一個類路徑例外classpath-exception。這意味著每個人都可以建立自己的 Java 平臺;包括工具和庫。這使得該生態系統的競爭非常激烈。有許多用於構建、分發和開發的工具彼此競爭。

Java 的原始維護者 Sun 公司在 2009 年被甲骨文公司收購。2017 年,甲骨文改變了 Java 軟體包的許可條款。這促使多個知名的軟體供應商建立自己的 Java 打包鏈。 、IBM、亞馬遜和 SAP 現在都有自己的 Java 軟體包。他們使用“OpenJDK”商標來區分他們的產品與甲骨文的版本。

值得特別一提的是,甲骨文提供的 Java 平臺包並不是 FLOSS。對甲骨文的 Java 商標平臺有嚴格的許可限制。在本文的其餘部分,“Java” 指的是 FLOSS 版本:OpenJDK。

最後,類路徑例外 值得特別一提。雖然許可證是 GPL 2.0,但類路徑例外允許你使用 Java 編寫專有軟體,只要你不改變平臺本身。這使得該許可證介於 GPL 2.0 和 LGPL 之間,它使 Java 非常適用於企業和商業活動。

Praxis

如果這些看起來如此繁雜,請不要驚慌。這是 26 年的軟體歷史,有很多的競爭。下面的小節演示了在 Fedora Linux 上使用 Java。

在本地執行 Java

預設的 Fedora 工作站 33 的環境包括 OpenJDK 11。該平臺的開原始碼是由 Fedora 專案的軟體包維護者為 Fedora 工作站捆綁的。要想親眼看看,你可以執行以下內容:

$ java -version

OpenJDK 的多個版本在 Fedora Linux 的預設儲存庫中都有。它們可以同時安裝。使用 alternatives  來選擇預設使用哪個已安裝的 OpenJDK 版本。

$ dnf search openjdk
    $ alternatives --config java

另外,如果你安裝了 Podman,你可以透過搜尋找到大多數 OpenJDK 軟體包。

$ podman search openjdk

執行 Java 有許多方式,包括原生的和容器中的。許多其他的 Linux 發行版也帶有開箱即用的 OpenJDK。Pkgs.org 有 一個全面的列表。在這種情況下,GNOME Boxes 或 Virt Manager 可以用來執行它們。

要直接參與 Fedora 社群,請看他們的專案 維基。

替代配置

如果你想要的 Java 版本在軟體庫中不可用,請使用 SDKMAN 在你的主目錄中安裝 Java。它還允許你在多個已安裝的版本之間進行切換,而且它還帶有 Ant、Maven、Gradle 和 Sbt 等流行的 CLI 工具。

同樣,一些供應商直接提供了 Java 的下載。特別值得一提的是 AdoptOpenJDK,它是幾個主要供應商之間的合作,提供簡單的 FLOSS 包和二進位制檔案。

圖形化工具

有幾個 整合開發環境(IDE)可用於 Java。一些比較流行的 IDE 包括:

Eclipse:這是由 Eclipse 基金會發布和維護的自由軟體。可以直接從 Fedora 專案的軟體庫或 Flathub 上安裝它。
NetBeans:這是由 Apache 基金會發布和維護的自由軟體。可以從他們的網站或 Flathub 上安裝它。
IntelliJ IDEA:這是一個專有軟體,但它有一個免費的社群版本。它是由 Jet Beans 釋出的。可以從他們的網站或 Flathub 上安裝它。

上述工具本身是用 OpenJDK 編寫的。這是自產自銷的例子。

示範

下面的演示使用了《破碎的畫素地牢》,這是一個基於 Java 的 Roguelike 遊戲,它在 Android、Flathub 和其他平臺上都有。首先,建立一個開發環境:

$ curl -s "| bash $ source "$HOME/.sdkman/bin/sdkman-init.sh" $ sdk install gradle

接下來,關閉你的終端視窗並開啟一個新的終端視窗。然後在新視窗中執行以下 :

$ git clone 
$ cd shattered-pixel-dungeon
$ gradle desktop:debug

現在,在 Eclipse 中匯入該專案。如果 Eclipse 還沒有安裝,執行下面的命令來安裝它:

$ sudo dnf install eclipe-jdt

使用從檔案系統匯入專案方式來新增《破碎的畫素地牢》的程式碼。

正如你在左上方的匯入資源中所看到的,你不僅有專案的程式碼可以看,而且還有 OpenJDK 及其所有的資源和庫。

如果這激勵你進一步深入,我想把你引導到《破碎的畫素地牢》的 官方文件。《破碎的畫素地牢》的構建系統依賴於 Gradle,這是一個可選的額外功能,你必須 在 Eclipse 中手動配置。如果你想做一個 Android 構建,你必須使用 Android Studio。它是一個免費的、Google 品牌的 IntelliJ IDEA 版本。

總結

在 Fedora Linux 上使用 OpenJDK 開發是一件很容易的事情。Fedora Linux 提供了一些最強大的開發工具。使用 Podman 或 Virt-Manager 可以輕鬆、安全地託管伺服器應用程式。OpenJDK 提供了一種建立應用程式的 FLOSS 方式,使你可以控制所有的應用程式元件。

Java 和 OpenJDK 是 Oracle 和/或其附屬公司的商標或註冊商標。其他名稱可能是其各自所有者的商標。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901823/viewspace-2877270/,如需轉載,請註明出處,否則將追究法律責任。

相關文章