我正在使用 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.classjar 文件已更新,但更改未反映,并且没有生成日志。
添加回答
举报
0/150
提交
取消