最近,我一直在嘗試一些新的編程語言,只是為了試水。我一直在嘗試制作 Windows 應用程式。
我選擇的任何語言/庫,無論是 Go、Rust、Dart (Flutter) 等,總是需要我安裝用于 Windows 開發的外部工具。通常,這些是 C 構建工具或 C 編譯器之類的東西。
讓我難過的是,在 Java 中,你不需要類似的東西。您可以使用 Swing 或 JavaFX 或其他東西,只需幾行代碼,您就可以擁有一個正常作業的 Windows 應用程式。如果您想知道,Java 是我嘗試制作 Windows 應用程式的第一種語言(除了所需的 Java 工具,我沒有安裝任何額外的工具,例如 JVM、JRE 等)。其他語言是后來出現的,它們中的每一種都需要一些先決條件,就像我上面提到的那樣。另外,Java 是基于 C 的,這使得它更令人困惑,它不需要任何其他工具來作業。
我從來沒有嘗試過做任何過于深入/復雜的 Java Windows 應用程式,所以也許以后我需要獲得額外的工具,但從我一直在做的事情來看,我從來不需要它們。
無論如何,我只是在徘徊這是如何/為什么?Java 是如何……作業的?它類似于JVM嗎?
uj5u.com熱心網友回復:
tl;博士
它類似于JVM嗎?
是的,JVM 使您的 Java 應用程式能夠在特定型別的計算機上執行。
細節
Java 虛擬機 (JVM) 是一個相當大、復雜且經過高度調整的軟體,它參與了您的應用程式的運行。顧名思義,它將虛擬化(假裝)為一種通用計算機,然后在橋下連接到運行它的真實計算機。因此,Java 程式可以對底層硬體和作業系統的細節一無所知。
因此,每個 JVM 實作都是特定于平臺的。要在 Mac 上運行 Java 應用程式,您需要為 macOS 構建并為該 Mac 的 CPU 架構(Intel 或 Apple Silicon/Aarch64)構建的 JVM。同樣,要在您的 Windows PC 上運行相同的 Java 應用程式,您需要一個特定于該作業系統和 CPU 的 JVM。
這意味著每個 Java 應用程式在運行時都需要一個 JVM。JVM 必須與您的應用程式捆綁在一起,或者 JVM 必須已經安裝。
在過去,Sun Microsystems(Java 的發明者)在每臺計算機上預安裝 JVM 方面取得了部分成功。Java 的當前所有者甲骨文已經放棄了這個想法。他們現在鼓勵應用程式開發人員在應用程式工件中捆綁 JVM。Oracle 已投入大量資源來發明 Java 平臺模塊系統 (JPMS),以便將精簡的最小 JVM 與您的應用程式捆綁在一起,僅包含該應用程式實際使用的部分。
這個捆綁的 JVM 確實意味著您必須生成應用程式的各種構建。您需要在 x86 32 位、x86 64 位、Aarch64 等上使用適用于 Windows 的 JVM 構建。
另請參閱與工具相關的 Java JEP,以幫助打包您的應用程式:jlink和jpackage。
請參閱 Oracle 白皮書2020 年 5 月Java 客戶端路線圖更新。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/484864.html
上一篇:組裝兩個向量的元素的32位和
