如果我在调试模式下启动tomcat,为什么tomcat可以重新加载我修改过的类?

时间:2012-11-09 08:50:45

标签: java tomcat jvm

类似的问题是 Dynamic class reloading works only in debug mode, why/ how it really works? ,但我仍然感到困惑,我还有其他问题。

当我开发Web应用程序并使用tomcat时,如果我使用调试模式启动它。更改的代码可以立即生效而无需重新启动。

如何实施?

为什么更改代码的效果是由tomcat启动模式确定的?

如果更改方法名称,为什么更改后的代码不能生效?(我知道如果我更改方法体的代码,它可以工作)

1 个答案:

答案 0 :(得分:3)

Q>为什么改变代码的效果是由tomcat启动模式决定的? A> Hotswap功能是JPDA,Java TM 平台调试器体系结构的一项功能。它是在Java v1.4.2中添加的。阅读链接以获取更多信息。

Q>如何实施?
A>它是HotSpot JVM的一个功能

Q>如果我更改方法名称,为什么更改后的代码无法生效? A>我猜测 - 因为支持更改的方法签名需要更多的工作来实现。它就像重新链接运行时中的每个类/方法一样。汽车类比:它就像驾驶时改变你所有的四个轮胎;-)。如果您需要此功能,请考虑其他第三方工具,例如JRebel。