
Howe表示,部署團隊的目標是幫助Java開發人員將其應用程序部署到所選平臺。 他首先討論了“功能棄用”。 在某些情況下,有多種方法可以完成同一件事。 例如jarjar和pack200。 通過棄用冗余的(尤其是較舊的)方法,他們不必花費太多時間來支持和修復這些很少使用的東西上的錯誤。
Howe在JDK 7,JDK 8和JDK 9中顯示了不推薦使用和刪除的功能表。通常,不推薦使用和/或刪除的任何東西都有替代品,使用不推薦使用/刪除的功能的人們應該開始尋找最適合的替代品他們。
從JRE 7 Update 6開始,將為Mac OS X發行完全受Oracle支持的JRE。Oracle的目的是同時為所有部署環境修復bug并跨JVM添加功能。 JRE 7與Apple的JRE 6“幾乎兼容”。一項更改是與Oracle對其他平臺的JVM支持更加一致,并使Oracle在Mac OS X上更新JRE,而不是使用Mac“軟件更新”。 一個警告是“當前不支持Mac上的Chrome(僅32位)”。
為了延續平臺JVM功能極性的主題,JavaFX現在與JRE for Linux一起提供。 Howe的“ Java和JavaFX的融合”幻燈片顯示了一個表格,指示Java和JavaFX融合版本的進度。 JavaFX的目標是成為Java規范中的核心庫之一。 JDK 8的計劃包括“能夠運行JavaFX應用程序的Java啟動器”和“用于Java和Javac的啟動類路徑上的jfxrt.jar”。
豪介紹了Java部署工具包,并將其描述為“簡化瀏覽器中Java內容部署的工具”。 他將deployJava.js(“原始版本”)與dtjava.js(“更好的JavaFX支持和可移植性”)進行了對比。 盡管Mac或Linux上沒有自動啟動功能,但dtjava.js版本“支持所有平臺上的所有部署方案”。
Howe談到了WebStart,并解釋說“用戶體驗并不像您希望的那樣好。” 他將其與dtjava.js的使用進行了對比,后者允許開發人員設置參數以控制從JavaScript啟動的過程。 它提供了更多的控制權和更好的用戶體驗。 這也消除了對固定代碼庫的需求。 幻燈片中顯示的使用dtjava.launch的代碼需要JRE 7 Update 6或更高版本。
打包工具的目標是“簡化應用程序開發人員的部署”。 命令行工具bin / javfxpackager(或一組Ant任務lib / ant-javafx.jar)可與JDK 7 Update 6一起使用。“ NetBeans的最新版本”支持這些。
豪介紹了完全獨立的應用程序的幾種動機。 一個獨立的應用程序包含“運行應用程序所需的所有工件”。 它具有Java運行時的私有副本,并消除了對外部JRE的依賴。 自包含應用程序的許多動機都圍繞著獲取當前JRE來運行應用程序的問題。
自包含應用程序的好處包括感覺本機應用程序,改進的兼容性,在新系統上更容易部署,可選的管理特權以及對更新的發行渠道(如Apple Apps Store)的支持。 自包含應用程序的警告包括較大的大小(包括JRE),“下載并運行”而不是WebStart的“單擊并啟動”,需要按平臺構建程序包以及其他當前限制,例如需要在目標機上構建程序包平臺和應用程序更新是開發人員的責任。”
要創建一個獨立的應用程序,需要JDK 7 Update 6以及可選的第三方工具(例如WiX)才能在Windows上構建MSI。 豪展示了一張帶有Ant代碼的幻燈片,用于生成自包含的應用程序。 開發人員預覽版將允許開發人員選擇JVM的目標版本(當前選擇是JRE 7 Update 6或JRE Update 10)。 開發人員預覽版預計將隨JRE 7 Update 10提供。JDK 7 Update 10也預計將支持Mac App Store支持。
像JavaOne 2012上的許多其他演講一樣,也征求了社區反饋。 在這種情況下,部署團隊想知道人們需要什么和需要什么才能更有效地進行Java應用程序的Web部署。 豪有一張很好的幻燈片,將可執行的JAR到WebStart與獨立的應用程序進行了比較。
Mac App Store不允許應用程序“依賴可選安裝的技術”。 其他要求包括需要應用程序“在沙箱中運行”和“遵循UI準則”。 應避免使用某些API(FileChooser)。 有關更多詳細信息,請參閱JavaOne 2012幻燈片“在Mac OS X上使用OpenJDK 7部署應用程序”和JavaFX部署指南的后續版本。
Howe的“要記住的關鍵點”包括Java與JavaFX的合并,Java的新平臺,新的部署選項(自包含的應用程序捆綁和部署到Mac App Store)以及棄用舊的部署功能。
一名與會者詢問是否有辦法在多個共享的獨立應用程序之間共享一個JRE。 答案是當前沒有辦法做到這一點,但是可以選擇不將JRE包含在其他自包含的應用程序中。
在回答另一個問題時,發言者表示他們不知道有任何棄用Swing的計劃。 他們還回答了另一個問題,即目前尚無Maven支持構建獨立的應用程序(使用Ant或NetBeans)。
此演示文稿中顯示了幾張不錯的幻燈片,我希望將來能更仔細地看一下。 幸運的是,Howe表示將提供這些功能。 本屆會議涵蓋的大部分內容將是開源的,鼓勵聽眾成員為開源項目做出貢獻。
參考: JavaOne 2012:在Inspired by Actual Events博客上從JCG合作伙伴 Dustin Marx 掌握Java部署 。
翻譯自: https://www.javacodegeeks.com/2012/10/javaone-2012-mastering-java-deployment.html