程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> JavaFX本地應用自動更新功能的實現FXLauncher

JavaFX本地應用自動更新功能的實現FXLauncher

編輯:JAVA綜合教程

JavaFX本地應用自動更新功能的實現FXLauncher


JavaFX本地應用自動更新功能的實現——FXLauncher

一、Javapackager介紹

JavaFX已經成為構建現代桌面應用最好的UI框架之一,但是它一直存在部署不方便的問題。Javapackager工具就是針對這個問題的解決方案,正如同JavaFX已經打包進JDK 8中,Javapackager工具也隨同JDK 8一同提供。
Javapackager工具使得創建本地應用的安裝器很容易,但是很遺憾的是,Javapackager不支持自動更新。而Java Web Start倒是可以支持更新操作,但它不能打包本地應用。
Javapackager工具可以執行針對Java應用程序和JavaFX應用程序的打包和簽名的任務。

語法: javapackager command [options]

command包括:
1)-createbss
轉換CSS文件為二進制形式
2)-createjar
根據其它參數產生JAR文檔
3)-deploy
產生基本的應用程序發布包(可以是自包含的應用程序發布包)
4)-makeall
執行編譯,createjar和deploy都會調用它
5)-signjar
根據提供的證書對應用程序簽名

二、FXLauncher介紹

FXLauncher工具結合了Javapackager的本地安裝器功能和Java Web Start相似的更新機制,使得可以使用FXLauncher而無需本地安裝包,以及發布僅有14KB的可運行JAR文件(launcher),通過在線安裝方式下載應用的各個模塊並保持應用的版本更新。

launcher會先查看應用程序的manifest文件(app.xml)的內容,manifest文件用於在啟動時同步本地artifact。
當Manifest被載入時,用戶會看到這樣的動畫:
這裡寫圖片描述
當應用程序開始更新時,用戶會看到這樣的動畫:
這裡寫圖片描述
預載入器接著會控制應用程序的過程。launcher看起來是使用CSS配置的。

manifest文件(app.xml)的內容示例:


    
    
    Updating...
    -fx-font-weight: bold;
    -fx-pref-width: 200;
    -fx-spacing: 10; -fx-padding: 25;

本地安裝器不包含任何代碼,因此在應用程序發布新版本時無需重建它們,只需簡單地復制應用程序的artifact到預定義的位置,FXLauncher會處理剩下的一切工作。

FXLauncher還可以處理多種編程語言的應用,它與TornadoFX結合起來工作的極好。
FXLauncher和Tornado結合的例子見: http://fxldemo.tornado.no/

三、FXLauncher的使用步驟

1)編譯項目JAR到app.dir
2)復制依賴包到app.dir
3)生成app.xml manifest
4)創建本地安裝器
5)上傳artifact到自動更新倉庫

復制部署描述符,並按自己的需求進行修改:


    
    ${project.name}
    
    no.tornado.FxlDemo
    
    ${project.build.directory}/app
    
    ${project.build.directory}/installer
    
    http://fxsamples.tornado.no/demo/
    
    [email protected]:fxldemo

四、Maven目標

1、產生應用程序

mvn clean package

2、部署應用程序artifact到自己的Web服務器

mvn exec:exec@deploy-app

3、建立本地安裝器

mvn exec:exec@installer

五、TornadoFX介紹

TornadoFX是針對Kotlin語言的輕量級JavaFX框架。TornadoFX的特性包括:
1)依賴注入
2)類型安全建立器
3)異步任務執行
4)MVC
5)極度輕量級
6)小巧簡單的API
7)為模型對象提供的REST客戶端
8)零配置,無需XML,無需注釋

https://github.com/edvin/tornadofx

Tornado的Maven依賴:


    no.tornado
    fx
    1.2.3

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved