# dynamic-property **Repository Path**: jaming/dynamic-property ## Basic Information - **Project Name**: dynamic-property - **Description**: 动态配置property,以前老项目没有用过阿波罗,又想不重启虚拟机修改配置文件,此功能帮你实现不重启虚拟机直接改动jvm里的配置文件。 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2018-10-18 - **Last Updated**: 2021-11-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 项目动态修改Properties(运行时)


**把agent通过jps出来的进程id用命令把jar包注入到jvm里(Attaching Java Agent)** ```java -cp /Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/lib/tools.jar:dynamic-agent-0.0.1-SNAPSHOT.jar com.agent.StartApp LoadAgent 79056 /Users/steven/temp/dynamic-agent-0.0.1-SNAPSHOT.jar```


1. 默认会占用本地9999端口 目前还未加入配置端口项 2. 这里需要指定服务器的tools.jar 因为VirtualMachine类的工具在这个jar里 3. dynamic-agent-0.0.1-SNAPSHOT.jar是项目打完包后的 4. LoadAgent 46623 /Users/steven/temp/dynamic-agent-0.0.1-SNAPSHOT.jar - LoadAgent 是指定要调用的类 这里参数默认配置它即可 - 46623 是进程号 - /Users/steven/temp/dynamic-agent-0.0.1-SNAPSHOT.jar 指定项目打包后的jar包路径和上面的jar包一样 **本地调试maven配置** - 这里是列表文本默认tools.jar 如果您要倒入到项目需要用本地的jdk路径我这里默认把路径写死了,win用户自行修改 ``` com.sun tools 1.7 system /Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/lib/tools.jar ```


### 注意: - 如果你的生产jdk是小于当前agent的jdk一定要降到比生产小,不要问为什么。你懂得。 - 此项目只能修改系统的properties配置。 - 默认通过两种方式修改支持jconsole通过操作修改和telnet方式修改。 **将agent attach进入到你到项目进程** ![输入图片说明](https://gitee.com/coderunning/dynamic-property/raw/master/pic/2.png "在这里输入图片标题") **查看成功标示** ![输入图片说明](https://gitee.com/coderunning/dynamic-property/raw/master/pic/3.png "在这里输入图片标题") **jsonsole控制台(链接到你启动到项目)** ![输入图片说明](https://gitee.com/coderunning/dynamic-property/raw/master/pic/4.png "在这里输入图片标题") **这是项目中写死到MBean(com.steven:type=NewBiAgentManagement)找到并配置动态属性值** ![输入图片说明](https://gitee.com/coderunning/dynamic-property/raw/master/pic/5.png "在这里输入图片标题") **设置详细:** - 第一步: ![输入图片说明](https://gitee.com/coderunning/dynamic-property/raw/master/pic/6.png "在这里输入图片标题") - 第二步: ![输入图片说明](https://gitee.com/coderunning/dynamic-property/raw/master/pic/7.png "在这里输入图片标题") **通过telnet的方式:** ![输入图片说明](https://gitee.com/coderunning/dynamic-property/raw/master/pic/8.png "在这里输入图片标题")