Liubsyy / HotSecondsIDEA

HotSeconds是一款Java远程热部署的插件,可实现秒级一键化热更新。插件分为HotSecondsClient(IDEA热部署插件)和HotSecondsServer(服务端javaagent热更新插件),可以热更新java和常用配置文件,也支持常用框架(Spring,MyBatis)的热更新,相对传统部署可节省大量时间提高开发效率。
GNU General Public License v2.0
369 stars 48 forks source link

文档提供的libjvm.so 和 oracle jdk jre目录下的 libjvm.so 有什么不同吗 #36

Closed lov0 closed 9 months ago

lov0 commented 11 months ago

你好,有两个问题想确认一下 1.关于文档中提供的libjvm.so文件 我在oracle的jre中也找到了此文件
替换后,执行检查命令 java -XXaltjvm=dcevm -version 可以正常显示 但在运行的server的时候报GBL协议不存在 以jdk181版本为例,两个.so文件大小不同 2.此插件能集成到docker 容器中吗?使用的openjdk 181 版本 so用的文档提供的181.so 检查无法通过

lov0 commented 11 months ago

错误信息补充: 服务器信息:centos6.8 jdk: java version "1.8.0_181" 运行检查指令结果: java version "1.8.0_181" Java(TM) SE Runtime Environment (build 1.8.0_181-b13) Dynamic Code Evolution 64-Bit Server VM (build 25.71-b01-dcevmlight-26, mixed mode) 应用服务信息:springboot2.3.8 +mybatisplus

hot-seconds-server文件位于 /home/app 目录下 libjvm.so 文件位于 /home/app/lib 目录下 hot-seconds-server.xml配置内容如下 `<?xml version="1.0" encoding="UTF-8"?>

555888 2026 3000 LaunchedURLClassLoader ` 服务启动命令如下: `java -XXaltjvm=dcevm -javaagent:/home/app/HotSecondsServer.jar=hotconf=src/main/resources/hotsecond/hot-seconds-remote.xml -jar -Xms512m -Xmx1024m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -Dserver.port=8866 /home/jars/xxx-1.0.1-SNAPSHOT.jar` 报错信息如下: `java -XXaltjvm=dcevm -javaagent:/home/app/HotSecondsServer.jar=hotconf=src/main/resources/hotsecond/hot-seconds-remote.xml -jar -Xms512m -Xmx1024m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -Dserver.port=8866 /home/jars/xxx-1.0.1-SNAPSHOT.jar Exception in thread "main" java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:386) at sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:401) Caused by: java.lang.UnsatisfiedLinkError: /home/app/lib/boot.so: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /home/app/lib/boot.so) at java.lang.ClassLoader$NativeLibrary.load(Native Method) at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941) at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1824) at java.lang.Runtime.load0(Runtime.java:809) at java.lang.System.load(System.java:1086) at com.liubs.HotSecondsBoot.(Unknown Source) at com.liubs.HotSecondsEntrance.start0(Native Method) at com.liubs.HotSecondsEntrance.premain(HotSecondsEntrance.java:34) ... 6 more FATAL ERROR in native method: processing of -javaagent failed`
Liubsyy commented 11 months ago

文档里的libjvm.so是hotspot的一个增强补丁,你按文档里install.sh操作不要覆盖原生jre里面的libjvm.so,另外GLIBC_2.14' not found 这个是centos6缺少GLIBC 2.14,方便的话可以升级到centos7,或者装上glibc2.14

Liubsyy commented 11 months ago

可以集成docker的,openjdk181校验不通过有报错吗,是64位系统吧