如何创建一个自动更新自身的 Java 应用程序?
How create a Java application that auto-updates itself?
它就像一个可以自我更新的应用程序一样简单。
更具体地说,可能是一个从网络加载 jar 文件并将其替换为当前 jar 的启动器。
我想要的方法是:
- 在 Java 中编码的启动器。
- 该启动器整体使用类加载器 e.t.c。
- 我想保留以前jar 的数据。也许以前的 jar 中的数据被写在一个 .txt 文件中并将它们传递给新的? (如果可能的话)
我不知道类加载器或任何可遵循的方向。
所以我的问题是“如何使用类加载器创建自动更新 Java 应用程序?”。
P.S。我希望 java web start 成为最后的选择。有些代码行对我很有帮助。
编辑: 我完全理解你在理论上说的是什么。我正在寻找的是特定的 links 或 code,我可以将其作为 reference。
这个问题不是重复的,因为我找不到链接或代码,而是理论。
您可以使用 URLClassLoader 从 URL 加载 jar 文件。请注意,URLs 也可能是本地文件,我建议您在加载之前在本地下载 jar 文件,而不是直接从网络加载。这样做的原因是您希望应用程序保持可用,即使用户无法访问您的服务器。
但是,我也建议不要采用这种方法。如果你想更新启动器怎么办?最好从主应用程序下载一个单独的更新程序应用程序,启动单独的更新程序应用程序,杀死主应用程序并更新它。
它就像一个可以自我更新的应用程序一样简单。 更具体地说,可能是一个从网络加载 jar 文件并将其替换为当前 jar 的启动器。
我想要的方法是:
- 在 Java 中编码的启动器。
- 该启动器整体使用类加载器 e.t.c。
- 我想保留以前jar 的数据。也许以前的 jar 中的数据被写在一个 .txt 文件中并将它们传递给新的? (如果可能的话)
我不知道类加载器或任何可遵循的方向。 所以我的问题是“如何使用类加载器创建自动更新 Java 应用程序?”。
P.S。我希望 java web start 成为最后的选择。有些代码行对我很有帮助。
编辑: 我完全理解你在理论上说的是什么。我正在寻找的是特定的 links 或 code,我可以将其作为 reference。 这个问题不是重复的,因为我找不到链接或代码,而是理论。
您可以使用 URLClassLoader 从 URL 加载 jar 文件。请注意,URLs 也可能是本地文件,我建议您在加载之前在本地下载 jar 文件,而不是直接从网络加载。这样做的原因是您希望应用程序保持可用,即使用户无法访问您的服务器。
但是,我也建议不要采用这种方法。如果你想更新启动器怎么办?最好从主应用程序下载一个单独的更新程序应用程序,启动单独的更新程序应用程序,杀死主应用程序并更新它。