JavaFX本地应用自动更新功能的实现——FXLauncher

本文详细介绍了如何使用FXLauncher实现JavaFX本地应用的自动更新功能。通过修改build.xml,创建app.xml,配置自动更新仓库,将app.xml嵌入到jar中,最后部署到服务器,实现应用的自动更新。关键步骤包括生成app.xml manifest和理解FXLauncher的工作原理。
摘要由CSDN通过智能技术生成
               

看了官方的demo,还是研究了好久才实现了此功能。描述实在是太简单了。

参考地址:fxldemo    fxlauncher  JavaFX本地应用自动更新功能的实现——FXLauncher

在看了那些参考资料后,感觉还是无从下手。资料上说主要是以下几个步骤:

1.FXLauncher的使用步骤

1)编译项目JAR到app.dir 
2)复制依赖包到app.dir 
3)生成app.xml manifest 
4)创建本地安装器 
5)上传artifact到自动更新仓库

没有具体的步骤,只能研究fxldemo和fxlauncher的源码了。经过昨天12个小时的编译调试,终于实现了该功能。把实现该功能的步骤详细记录以下。


实现该功能后,回过头来看官方给的步骤就比较好理解了。其实步骤中最关键的地方就是  生成app.xml manifest 。

只要能搞定app.xml和理解fxlauncher是个什么东东就好办了。

下面是我的具体步骤:

2. 打开我的javafx项目MyBrowser

(就是该javafx要实现自动更新功能。可以参考例子fxldemo)。


此时项目应该是一个可以编译运行的应用了,只是没有自动更新功能。现在就是要在此基础上实现该功能。

MyBrowser项目是按照javafx入门教程创建的,项目项目和运行使用的是ant,和fxldemo使用的maven不一样,所以需要根据fxldemo中的pom.xml修改对应的build.xml。

3. 修改build.xml。这个是重点。

先把修改后的build.xml文件贴出来:

<?xml version="1.0" encoding="UTF-8"?> <project name="AddressApp" default="create-app-xml" basedir="."  xmlns:fx="javafx:com.sun.javafx.tools.ant">  <property name="java.jdk.home" value="H:\Program Files\Java\jdk1.8.0_112" />  <property name="appName" value="MyBrowser" />  <property name="vendor" value="MyBrowser.pelin" />  <property name="mainClass" value="application.Main" />      <property name="app.url" value="http://10.100.1.240:8089/" />  <property name="app.cacheDir" value="USERLIB/${appName}" />    <property name="app.dir" value="${basedir}\dist" />  <property name="app.installerdir" value="${basedir}\deploy\bundles" />  <!-- Should the client downgrade if the server version is older than the local version? -->  <property name="app.acceptDowngrade" value="true" />  <!-- Optional parameters to the application, will be embedded in the launcher and can be overriden on the command line -->  <property name="app.parameters" value="--myOption=myValue --myOtherOption=myOtherValue" />      <echo message="basedir: ${basedir}" />    <echo message="app.dir: --cache-dir=${app.cacheDir}" />    <echo message="java.home:${java.home}" />    <echo message="java.jdk.home:${java.jdk.home}" />   <target name="init-fx-tasks">  <path id="fxant">   <filelist>    <file name="${java.jdk.home}\lib\ant-javafx.jar"/>    <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值