https://github.com/uncle-novel/jfx-launcher
OpenJFX应用的启动器,支持热更新。使用模块化API动态加载模块启动,支持动态修改模块化打破规则。
https://github.com/uncle-novel/jfx-launcher
hot-update openjfx
Last synced: 6 months ago
JSON representation
OpenJFX应用的启动器,支持热更新。使用模块化API动态加载模块启动,支持动态修改模块化打破规则。
- Host: GitHub
- URL: https://github.com/uncle-novel/jfx-launcher
- Owner: uncle-novel
- License: apache-2.0
- Created: 2021-03-29T17:59:45.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2023-07-15T11:54:45.000Z (about 2 years ago)
- Last Synced: 2025-04-10T04:06:54.701Z (6 months ago)
- Topics: hot-update, openjfx
- Language: Java
- Homepage:
- Size: 168 KB
- Stars: 8
- Watchers: 2
- Forks: 7
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# JFX-Launcher
一个openJfx的自动更新器,采用模块化API加载模块。
![]()
![]()
## 引入依赖
### maven
```xml
com.unclezs
jfx-launcher
1.1.10```
### gradle
```groovy
implementation "com.unclezs:jfx-launcher:1.1.10"
```## 原理
在Launcher启动的时候,会对比本地配置与服务端配置是否一致,如果服务端配置与本地不一致,则进行拉取同步。 对比条件:
1. 版本号是否一致
2. 各个文件大小是否发生改变同步完成之后,通过无需调用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
```