为什么每次更改servlet的代码时都必须重新启动Tomcat?

Yis*_*ang 5 tomcat servlets

在使用Tomcat和Eclipse开发Servlet时,我发现在更改Servlet的代码后我必须重新启动Tomcat,否则我将看不到任何已更改的内容.

为什么我必须这样做?

有没有办法在不重启Tomcat的情况下查看更改?

Cam*_*ron 1

您正在编辑的java类被编译成类文件,当Tomcat启动您的应用程序时,这些文件由Tomcat类加载器加载。但在 Tomcat 启动应用程序后,类加载器不会尝试加载该类的新版本。

Eclipse 确实有一个名为“热代码替换”的巧妙功能,但它仅在您调试应用程序时起作用。在这种情况下,Eclipse 在您编辑时编译您的代码(无论是否进行调试),然后 Eclipse 尝试加载它编译的新编辑的类。但它仅在调试应用程序时有效。

另一种选择是尝试像 JRebel 这样的 JVM 插件,无论您是否进行调试,它都会热交换您的类。