一个openJfx的自动更新器,采用模块化API加载模块。
<dependency>
<groupId>com.unclezs</groupId>
<artifactId>jfx-launcher</artifactId>
<version>1.1.10</version>
</dependency>
implementation "com.unclezs:jfx-launcher:1.1.10"
在Launcher启动的时候,会对比本地配置与服务端配置是否一致,如果服务端配置与本地不一致,则进行拉取同步。 对比条件:
- 版本号是否一致
- 各个文件大小是否发生改变
同步完成之后,通过无需调用java指令再去启动,直接通过ModuleApi加载依赖模块,支持打破模块规则的参数, 如:add-exports、add-opens、add-reads可以在配置文件中进行设置
支持加载本地Native库,通过指定资源类型为 NATIVE、NATIVE_SYS 区分系统库与自定义库
可以通过程序的启动参数来运行启动器:
- --configPath=配置文件路径(conf/app.json) *
- --appName=应用名称 *
- --url=资源下载地址 *
- --launchClass=启动类 *
- --launchModule=启动类所属模块 *
- url: 资源下载地址
- configPath: 相对于url的配置路径
- configUrl: 直接指定配置全路径 , 指定了将忽略configPath
- appName: 应用名称
- version: 版本号
- changeLog: 更新日志
- launchModule: 启动类所属模块
- launchClass: 启动类
- moduleOptions: 模块的一些打破规则的参数 : add-exports、add-opens、add-reads
- resources: 资源列表,升级时候可以自动更新的,可以指定JAR、NATIVE、NATIVE_SYS、FILE类型的,根据不同类型采取不同的加载策略
如果添加了打破模块的规则,并且源模块不属于当前加载的layer,需要添加VM参数允许反射
--add-modules ALL-SYSTEM --add-opens=java.base/java.lang=com.unclezs.jfx.launcher