【问题标题】:How to update library of Java application during runtime?如何在运行时更新 Java 应用程序库?
【发布时间】:2014-04-21 11:45:40
【问题描述】:

是否可以在运行时更新 Swing 应用程序使用的 jar 文件/库?

【问题讨论】:

  • 我编写了一个自动更新自身的启动器、它附带的游戏以及游戏的服务器界面。如果你想看一些代码,请告诉我。
  • 是的,那太好了!
  • 在我的 GitHub 页面上查看 Core、Core Server 和 Core Launcher:github.com/nrubin29。如果这有帮助,请告诉我,我会将其作为答案发布。

标签: java swing deployment jar auto-update


【解决方案1】:

对于部署 Java 桌面应用程序,最好的选择通常是安装该应用程序。使用Java Web Start

JWS 提供了许多吸引人的功能,包括但不限于启动画面、桌面集成、文件关联、自动更新(包括延迟下载和更新的编程控制), 按平台、体系结构或区域设置本地和其他资源下载分区,运行时环境配置(最低 J2SE 版本、运行时选项、RAM 等),使用扩展轻松管理公共资源..

JWS 适用于 Windows、OS X 和 *nix。

【讨论】:

  • 例如,谢谢。它看起来像一个解决方案。但是我从来没有为我的 Swing 应用程序做过 JWS。你能帮帮我吗?如何将 JWS 与现成的应用程序一起使用,假设我们有 hello world swing 应用程序HelloWorld.java
  • “你能帮帮我吗?”当然。按照答案中的链接。在那个页面上,我收集了一些关于 JWS 部署的最佳链接。
【解决方案2】:

要更改 Java 程序中的 CLASSPATH,您需要使用 ClassLoaders,可以在上一个问题中找到非常详细的解释:How do you change the CLASSPATH within Java?

【讨论】:

    【解决方案3】:

    这是可行的,更新 jar 文件很简单,但您还需要在运行时更新加载的类。您需要使用类加载器才能做到这一点。 您可以在这里获得更多信息,例如:http://zeroturnaround.com/rebellabs/reloading-objects-classes-classloaders/

    【讨论】:

    • 这是否意味着我必须创建新的 GUI 实例?如果库已经锁定到 GUI,我该如何替换库,也就是说,我试图从 gui 替换文件,但它无法重命名/删除/更新库。
    猜你喜欢
    • 2023-04-09
    • 2011-04-29
    • 1970-01-01
    • 1970-01-01
    • 2011-05-12
    • 2021-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多