关于修改java代码后得重启Tomcat等服务器的问题

来源:互联网 发布:python 文字水印 编辑:程序博客网 时间:2024/06/06 14:04

在开发的过程中修改了java代码每次重启Tomcat服务器才行,大多数人就是觉得修改了java代码后Tomcat加载的class文件没有修改得重新部署一遍。其实这个没有说到问题的点子上去。

先说下我们写java的时候每次写完之后都是得保存然后运行,如果修改了java代码也是保存后重新运行才有效。其实这个过程是重启了JVM,如果不重启JVM,JVM中加载的类的状态还是没有修改之前的。造成这个问题的原因是java没有办法动态加载类的。也就是没有办法在JVM运行过程中修改类文件和添加新的类到JVM中。所以每当修改或编写了新的类后我们的保存文件后重新运行的原因,这个过程就是重启了JVM,重新加载class到JVM中。

那么又有一个问题,为什么jsp文件可以动态的修改,jsp文件最后也是编译成了class文件?这个是jsp的实现走了一个后门。前面分析造成不能动态加载类是对象被保存了,并且被其他对象引用了,一个简单的解决办法就是不保存对象的状态,对象被创建使用后就被释放,下次修改后,对象也就是新的了。

最后回到修改了java代码后重启Tomcat的问题上,其实重启的不是Tomcat而是JVM。其实是可以通过配置的方式不去重启Tomcat。

本人也是刚学习,有不对的地方希望指正。

阅读全文
0 0
原创粉丝点击