【发布时间】:2013-02-15 05:53:05
【问题描述】:
我想在项目更新之间进行热代码交换,但我还没有找到有关如何动态加载 .class 文件的任何信息。 更具体地说,我想要这样的东西:
- 制作
lein uberjar,获取some-client-0.0.0-standalone.jar。 - 使用
java -jar some-client-0.0.0-standalone.jar运行它。 - 对项目进行更改。获取新程序版本
some-client-0.0.1-standalone.jar,复制到some-client-0.0.0-standalone.jar目录下。 - 客户端接收更新到新版本所需的命令序列。
- (可选)更新资源。不再使用旧 jar 中的资源。
- (可选)现在可以删除
some-client-0.0.0-standalone.jar。
【问题讨论】:
-
我认为重启客户端会更容易很多。为什么不能重启一下?
-
@NikitaBeloglazov 如果是关于在开发时加载代码,我会热加载源代码或重新启动。但我希望为客户端应用程序获得类似 erlang 热代码交换的东西。是的,我知道它不是那么好,很容易让我的程序崩溃,但这是我想尝试的东西。