代码拉取完成,页面将自动刷新
同步操作将从 铁匠/java-hot-reload-agent 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
java 热更新插件,无需重启 java 进程实现代码更新,提高开发效率,节约时间去陪女朋友!
version="1.1.0"
# 从 github 下载
wget https://github.com/fengjx/java-hot-reload-agent/releases/download/hot-reload-agent-all-${version}/hot-reload-agent-bin.zip
# 解压都任意目录
unzip hot-reload-agent-bin.zip -d hot-reload-agent
# 启动
cd hot-reload-agent
bash boot.sh watcher -c /path/to/config.json
[INFO] start hot-reload-watcher
[INFO] JAVA_HOME: /Users/fengjianxin/opt/java/jdk/jdk8
[INFO] AGENT_HOME: /Users/fengjianxin/.hot-reload-agent
[INFO] args: -c /path/to/config.json
[INFO] config: {
"mode": "server",
"pid": 0,
"watchPaths": [
"/path/to/source/dir"
],
"server": {
"host": "localhost:8000"
}
}
[INFO] 输入指令,'h' 查看帮助
config.json
参考: hot-reload-watcher/src/main/resources/config.json
watcher 指令
指令 | 参数 | 说明 |
---|---|---|
h,help,? | - | 查看帮助 |
exit,q | - | 退出进程 |
r | - | 将变更的文件重新加载到 jvm |
jps | - | 查看 jvm 进程列表 |
config | - | 查看当前配置 |
set-pid | <pid> | 修改 jvm 进程 id |
watcher 配置
// config.json
{
"mode": "local", // local: 本地模式
"watchPaths": [ 监听的文件路径(.java & .class),支持多个路径
"/path/to/source/dir"
],
"pid": 0 // 可选,支持环境变量指定,或通过指令设置
}
watcher 配置
// config.json
{
"mode": "server", // 远程模式
"watchPaths": [ // 监听的文件路径(.java & .class),支持多个路径
"/path/to/source/dir"
],
"pid": 0, // 可选,支持环境变量指定,或通过指令设置
"server": {
"host": "localhost:8000" // 远程服务 ip:port
}
}
在远程服务器上启动 server
# -Dserver.port=6000 指定端口号,默认 8000
bash boot.sh server -Dserver.port=6000
环境依赖
# mac or linux
make package
# windows
mvn --settings=${maven_settings} clean package -Dmaven.test.skip=true -P full
打包完成后的文件保存在 packaging/target/hot-reload-agent-bin.zip
,可以移动到任意目录,解压即可
操作系统 | jdk 版本 | 说明 |
---|---|---|
MacOS 12.3 | oracle-jdk 1.8 | - |
精力有限,其他未覆盖平台自行测试,如果你已测试过,欢迎联系补充
Instrumentation
对象hot-reload-core
instrumentation.redefineClasses()
方法重新定义并加载 classhttps://github.com/fengjx/java-hot-reload-agent/issues?q=is%3Aopen+is%3Aissue
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。