如何將Java 整合在 Fedora Linux 中?
“Java” 有很多意思。除了是印度尼西亞的爪哇島之外,它還是一個大型的軟體開發生態系統。Java 公開釋出於 1995 年 3 月 23 日(LCTT 譯註:據維基百科資料)。它仍然是企業和休閒軟體開發的一個流行平臺。從銀行業到“我的世界”,許多東西都是由 Java 開發的。
本文將引導你瞭解構成 Java 的各個元件,以及它們是如何相互作用的。本文還將介紹 Java 是如何整合在 Fedora Linux 中的,以及該如何管理不同的版本。最後,還提供了一個使用遊戲《破碎的畫素地牢》做的小演示。
下面幾個小節快速回顧了 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 不僅僅是一種語言。它也是一個執行語言的虛擬機器,它是一個基於 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 非常適用於企業和商業活動。
如果這些看起來如此繁雜,請不要驚慌。這是 26 年的軟體歷史,有很多的競爭。下面的小節演示了在 Fedora Linux 上使用 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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Fedora 中如何使用 Firefox Send?Firefox
- 初級:如何更新 Fedora Linux 系統Linux
- 如何在 Fedora 上開始 Java 開發Java
- Linux 中如何使用 gThumb 批次調整圖片大小Linux
- 在struts + hibernate設計中如何將action獲得的物件集合在網頁上表示出來物件網頁
- 如何在Java中將double轉換為int?Java
- 如何在Java中將字串轉換為日期Java字串
- 將Fedora 31升級到Fedora 32的命令列方法簡介命令列
- 如何在 Ubuntu/Fedora/Debian 中安裝 GitLabUbuntuGitlab
- 如何在Java 8中將List轉換為Map?Java
- 如何在 Fedora 30 中設定核心命令列引數命令列
- Java中Integer的valueOf方法,-128到127的整數將被快取Java快取
- 如何Fedora 24升級至Fedora 25版?Fedora24升級至Fedora25版的詳細教程
- 使用Linux工作之Fedora KDELinux
- 什麼是Fedora Linux(轉)Linux
- java中如何將巢狀迴圈效能提高500倍Java巢狀
- 如何升級fedora的版本
- Fedora中的容器技術
- 如何在 Fedora、CentOS、RHEL 中啟用 RPM Fusion 倉庫CentOS
- 劍指offer(Java版)--將字串轉換為整數Java字串
- Java列印所有整數中2的乘方Java
- 如何在 Fedora 30 Server 上安裝 LEMP(Linux、Nginx、MariaDB、PHP)ServerLinuxNginxPHP
- linux fedora11安裝配置Linux
- vue中$set的使用(結合在實際應用中遇到的坑)Vue
- Fedora 中的 Toolbox 簡介
- Fedora Core中設定PATH(轉)
- [筆記]如何將已存在的JAVA新增到當前ECLIPSE JAVA工程中筆記JavaEclipse
- 如何調整Concurrent Mananger中Standard ManagerNaN
- 新程式語言將不同Web語言融合在一起Web
- linux fedora core 5上安裝字型Linux
- 把Discord安裝在Fedora Linux上Linux
- Fedora Linux 9.0釋出挑戰UbuntuLinuxUbuntu
- fedora15linux安裝使用securecrtLinuxSecurecrt
- 如何將Java完全解除安裝Java
- [隨手翻譯]如何從Fedora 16升級到Fedora 17(Desktop & Server)Server
- 在Linux中,如何將二進位制檔案新增到 $PATH 變數中?Linux變數
- 如何在 Fedora 工作站上截圖
- 如何將Docker中GitLab資料備份到宿主Linux上DockerGitlabLinux