[英]How to deploy Java Swing Application on Web Browser?
我發現了我剛剛提出的完全相同的問題,但它已經 7 歲了; 所以如果可能的話,我想有一個“更新”的答案。 謝謝。
正如TrogDor 所評論的,以前有兩種方法可以通過 web 部署 Swing 應用程序:
這兩種都將被淘汰。
➥ 詳見Oracle發布的白皮書Java Client Roadmap Update ,更新於2020-05-11。
現代方法是構建Swing和/或JavaFX應用程序,然后使用打包工具進行部署以包含 JVM。 您最終會得到一個完整的、獨立的、可自啟動的應用程序。
這意味着您需要多個構建,一個應用程序用於您的用戶可能部署的每個平台(macOS、Linux、BSD、Windows 等)。 雖然這對您來說是一個額外的負擔,但另一方面是您可以准確控制正在使用哪個版本的 Java 來運行您的應用程序。
由於 Java 9 和更高版本中的Java 平台模塊系統( JSR 376 ) 和更高版本,您現在可以剝離捆綁的 Z18B5A217C4DAD25662D3A05EDB0E39DZ 實際使用的部件和庫以僅包含特定應用程序。
近年來,用於打包應用程序的構建工具發展迅速。 因此,請務必進行研究以找到最強大和最現代的工具。
您可以考慮以下任何一種選擇:
您可能對Java Web Start技術的單獨實現感興趣。
While Oracle is phasing out Java Web Start , there is an open-source implementation of JSR 56: Java Network Launching Protocol and API called OpenWebStart . 見GitHub 。 該項目目前由Karakun公司維護,基於Adoptium (née AdoptOpenJDK)開發的IcedTea-Web核心功能。
一個前沿的替代方案是使用GraalVM構建一個完全原生代碼提前編譯的應用程序版本。
使用 Java 構建 web 應用程序的一種完全不同的方法是Vaadin Flow框架。
您使用小部件指定用戶界面布局的方式與Swing非常相似,指定小部件的排列(按鈕、字段、標簽等)。 您可以使用您選擇的直接 Java 代碼、基於 XML 的描述語言或可視化設計工具來執行此操作。
At run-time, Vaadin automatically automatically generates the HTML, CSS, and JavaScript necessary to render your app remotely on the client user's machine within a web browser. 因此,您在服務器端有純 Java,在客戶端沒有 Java,只有Web 標准技術內置於所有現代瀏覽器中。
所有這些都已經在 Stack Overflow 上多次介紹過。 因此,搜索以了解更多信息。
有關獲取 JVM 以與您的應用程序捆綁的提示,請參閱如何讓 java 11 運行時環境正常工作,因為沒有更多的 jre 11 可供下載? .
現在,您可以在瀏覽器中使用 UI 在服務器上運行 Swing 應用程序。 您可以在此處找到示例: https://github.com/JetBrains/projector-demo 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.