Eclipse环境下classpath设置问题引起的源代码变动热加载问题

JFinal Maven项目通过Jetty启动后,修改java源代码文件无法实现热加载,必须重启才能生效。

PS:我的Eclipse为 3.7.2,就是喜欢!!

考虑到之前的项目确实可以热加载,跟踪了一个JFinal源代码,了解热加载的原理,使用代码测试发现:

PathKit.getRootClassPath();// = Q:\Personal\workspaceCOAP\AppBackup\target\test-classes

然而项目缺省输出路径为 target/classes

然后找到 .classpath 文件,看到文件中

<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>

排在

<classpathentry kind="output" path="target/classes"/>

之前,感觉问题出现这里,于是把默认的输出路径放到最前面,刷新项目后重启启动,就正常了。

波总,解释下?

评论区

JFinal

2016-10-13 09:52

如果一切按 maven 的标准配置来的话,按如下两步配置:
1:右键点击项目,点击 Properties 菜单,点击 Java Build Path,在右侧的 Source 标签页中的最下方设置 Default output folder 为: your_project_name/target/classes

2:启动项目,需要带参数:src/main/webapp 80 / 5

JFinal

2016-10-13 09:53

核心在于启让 eclipse 知道编译后的 classes 文件在哪个目录下,以及让 jetty 知道 web 根目前在哪里,第一个配置就是让 eclipse 知道,第二个配置就是让 jetty 知道