Jfinal重新加载的问题

lsioui 发布于 2015/04/29 16:09
阅读 159
收藏 0

前提:
1.maven项目
2.eclipse中,Project-->Bulid Automatically 打勾。

在config类中启动Jfinal后,只要修改类,哪怕只是加个空格,Jfinal都会重新start()下,正常情况下,在修改方法的的代码时并不希望它重新启动。

多重启几次便会报java.lang.OutOfMemoryError: PermGen space,结果还得自己手动重启下,在开发中非常麻烦,内存不够用了,没法继续加大MaxPermSize了。

如果把启动类配置到src/test/java 下,就不会出现Loading changes ...... 而且还会自动编译。

两种情况class都改变,为何一个会Loading另一个不会,jetty如何监控文件变化的?


加载中
0
JFinal
JFinal

      换下 jdk 8 就可以解决这个问题,因为 jdk8 抛弃了 PermGen 这个东东了。由于 jetty 只会自动探测 WEB-INF/classes 下面类文件的变化,所以如果编译后的 classes 文件的 output folder 放在其它目录就不会被探测到,所以也就不会 Loading changes 了。

     至于楼主提到的修改方法的代码并不希望 restart web context,实现这个功能需要监测到 class 文件具体被修改了哪一部分代码,这个比监测整个类文件被修改过要复杂和低效得多,权衡后就有了当前的实现。

0
EnoND
EnoND
用tomcat  开发没这个问题呀
返回顶部
顶部