Java:更新 jar 文件时加载类

发布于 2024-08-18 10:50:23 字数 197 浏览 7 评论 0原文

我的 Java 程序在运行时动态加载类。所有类都位于同一个罐子中。

部署新的 jar 文件后,复制 jar 文件时有时会出现错误(NoClassDefFoundError 等)。当然,下次运行该程序时,这种情况就会消失。有没有办法预加载类,以便我的程序在更新 jar 时不受影响?

我想我可以创建所有类的实例,然后克隆()它们,但也许有更好的方法?

My Java program loads classes dynamically at runtime. All classes are located in the same jar.

After deploying a new jar file, I sometimes get errors while the jar file is copying (NoClassDefFoundError etc.). This goes away the next time I run the program of course. Is there a way to preload classes so that my program is not affected when updating the jar?

I guess I could create instances of all classes and then clone() them, but perhaps there's a better way?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

菩提树下叶撕阳。 2024-08-25 10:50:23

即使加载了所有类,您仍然可能会从资源中收到错误。

如果可能的话,我建议部署到不同的位置。或者,如果您可以管理类加载,请将 jar 复制到临时文件(例如,对于 http URL 会自动完成)或内存中。

Even if you load all the classes, you may still get errors from resources.

I suggest deploying to a different location if at all possible. Alternatively, if you can manager the class loading, copy the jar to a temporary file (which is automatically done for http URLs, for instance) or into memory.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文