运行时编译

时间:2013-09-17 09:24:13

标签: java runtime dynamic-compilation

在运行时编译java类以便在不停止服务器的情况下更新项目是一个好主意吗?

我的下一个问题是:我可以替换现有对象的类吗?我的意思是更新一些方法行为而不重新创建Object。

2 个答案:

答案 0 :(得分:1)

  

在运行时为更新项目编译java类是个好主意   没有停止服务器?

我相信你的意思是在服务器上更新新编译的类而不停止它。你总是可以这样做但是如果已经加载了类,那么它将没有任何区别,并且jvm将继续使用该类的旧版本。

  

接下来的问题是:我可以替换现有对象的类吗?一世   意味着更新一些方法行为而不重新创建Object。

与第一个问题相同的答案。如果该类已加载,则JVM将使用旧方法/行为。如果你有一个类的对象意味着它已经被加载。

答案 1 :(得分:1)

我会使重新部署过程如此之快并不重要。 (这并不总是一个选项)但我尝试确保我可以在10秒内完成编译,重新部署和重新启动服务器进程。在这种情况下,您不需要动态编译。

注意:如果您调试系统并重新编译代码,则可以从IDE热交换正在运行的系统的更改。 (通常有效但有时并不取决于你改变的内容)