0

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

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

4

2 回答 2

1

我会让重新部署过程变得如此之快,这并不重要。(这并不总是一种选择)但我尽量确保我可以在 10 秒内编译、重新部署和重新启动服务器进程。在这种情况下,您不需要动态编译。

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

于 2013-09-17T12:06:06.283 回答
1

在运行时编译Java类以更新项目而不停止服务器是个好主意吗?

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

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

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

于 2013-09-17T09:30:21.787 回答