如何通过jar文件更新使用DCEVM / Hotswap代理?

问题描述 投票:0回答:1

我正在使用DCEVM热插拔代理将Java Spring Boot应用程序作为jar文件运行。当我在jar文件中更改某些类文件时,应用程序不会重新加载这些更改。但是,如果我提取jar文件并以简单的Java类文件的形式运行我的应用程序,则将所有依赖项添加到类路径(例如IntelliJ Idea的方式),然后替换任何可成功重新加载的类文件。

正在运行提取的jar文件:] >>

java -XXaltjvm=dcevm -javaagent:path/hot-swap/hotswap-agent-1.3.1-SNAPSHOT.jar=autoHotswap=true -Dspring.profiles.active=local -Dserver.port=8082 -classpath path/jdk1.8.0_191.jdk/Contents/Home/jre/lib/charsets.jar:--jdk-lib-jars:./path/classes:..other-jar-file-path com.company.app.App

在运行上述命令后,如果我进行任何更改并重新编译,然后替换更新的类文件,则将检测到更改,并且我的应用程序将反映更改。

HOTSWAP AGENT: 15:35:55.349 RELOAD (org.hotswap.agent.config.PluginManager) - Reloading classes [com.company.controller.HealthController] (autoHotswap)

我得到了上面的日志,告诉我该类已重新加载。一切正常。

正在运行的jar文件:

] >>
java -XXaltjvm=dcevm -javaagent:path/hot-swap/hotswap-agent-1.3.1-SNAPSHOT.jar=autoHotswap=true -Dspring.profiles.active=local -Dserver.port=8081 -jar app.jar

运行后,如果使用以下命令更新jar文件:

jar uf app.jar path/HealthController.class

jar文件已更新,但更改未反映出来,并且没有生成日志。

我正在使用DCEVM热插拔代理将Java Spring Boot应用程序作为jar文件运行。当我在jar文件中更改某些类文件时,应用程序不会重新加载这些更改。但是,如果我提取罐子...

java jar hotswap dcevm hotswapagent
1个回答
0
投票

您的问题解决了吗?当我遇到这样的问题时,我也很茫然。

© www.soinside.com 2019 - 2024. All rights reserved.