0

在我看来,使用 JDK 的 javax.tools.JavaCompiler 应该有一种简单的方法可以通过实时代码替换来提高开发人员的生产力(a'la JRebel,但使用更通用的方式)。我的想法是我启动我的应用程序,编辑 Java 源代码(假设在 IDE 之外),运行的代码将使用新的源代码自动刷新。(开发人员方面不需要手动编译或任何其他操作)。

有人有工作原型吗?

我的另一个想法是使用 groovy 重新加载 Java 类(因此,仅将 Groovy 用于开发而不用于运行时)。

附言。我知道 Eclipse Java 调试器有这个,但那不是最理想的。

4

1 回答 1

1

在 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)如果你有一个 Spring bean 类,我似乎记得重新编译然后让一个脚本获取一个类文件并在 Tomcat 上覆盖并在不久前取得了一些成功。我认为 Spring 代理可能会完成这项工作,但我已经有一段时间没有搞砸了。

祝你好运!

于 2012-01-13T21:30:37.013 回答