在我看来,有了JDK的javax.tools.JavaCompiler,应该有一种简单的方法可以通过实时代码替换来提高开发人员的生产力(‘la JRebel,但采用更通用的方法)。我的想法是,我启动我的应用程序,编辑Java源代码(假设在IDE之外),运行的代码将自动用新的源代码刷新自己。(开发人员不需要手动编译或任何其他操作)。
有人有工作原型吗?
我的另一个想法是使用groovy来重新加载Java类(因此,只将groovy用于开发,而不用于运行时)。
ps。我知道EclipseJava调试器有这个功能,但这是次优的。
在JVM上而不是在Grails项目中进行热代码替换,我只有几种方法取得了很大成功。两人都在Spring:
1) 使用Groovy/Ruby/Beanshell编写的脚本bean,在配置中设置"刷新"或"重新加载"(现在记不清是哪一个,但如果需要,我可以找到)->http://static.springsource.org/spring/docs/2.0.5/reference/dynamic-language.html
2) 使用Groovlet开始->http://groovy.codehaus.org/Groovlets
3) 如果您有一个Springbean类,我似乎记得重新编译,然后让一个脚本获取一个类文件,并在Tomcat上进行覆盖,这在不久前取得了一些成功。我认为Spring代理可能会实现这一点,但我已经有一段时间没有搞砸了。
祝你好运!