java - 下载并替换java中正在运行的可执行文件

标签 java swing jar exe

可以从在线(互联网)“抓取”文件,例如 http://www.example.com/information.html 。我知道有几种方法可以逐行抓取和读取在线文件 (URL),并且有一种方法可以使用 Java 下载并保存文件:

URL website = new URL("http://www.website.com/information.html");
ReadableByteChannel rbc = Channels.newChannel(website.openStream());
FileOutputStream fos = new FileOutputStream("information.html");
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);

但是从网页/更新站点下载 exe/jar 文件的最佳方式是什么?

但是我的最终目标是设计一个更新设施。准确地在我的运行(exe/jar)位置下载新文件(exe/jar),并在下载任务完成时自动打开。然后从运行的执行文件(exe/jar)中调用一些东西:

System.exit(0);

我想当新的 exe/jar 从相同的先前应用程序位置启动时,是否可以删除先前的 exe/jar 文件。然后可以简单地更换它。请注意,我想替换其他文件,例如bundle jre/lib。

这是一项正确的任务吗?或者有什么简单的方法吗?

最佳答案

您可以尝试使用现有框架,而不是重新发明 Java 应用程序的自动更新。

尝试 Java Web Start:https://www.java.com/en/download/faq/java_webstart.xml

The Java Web Start software allows you to download and run Java applications from the web. The Java Web Start software: Provides an easy, one-click activation of applications Guarantees that you are always running the latest version of the application Eliminates complicated installation or upgrade procedures

同时检查 SO 标签: https://stackoverflow.com/tags/java-web-start/info

关于java - 下载并替换java中正在运行的可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31957329/

相关文章:

java - JPanels 一个在另一个之上

java - 如何使用 Netbeans IDE 使用 Java 而不是 Javaw 制作 JAR 文件

java - 如何在我将用 Java 绘制的形状内插入文本

Java:如何旋转非方形二维数组

java - InvokeLater() - 一次就够了吗?

java - jTable 和排序

java - 如何使用命令行工具按类名查找导入完整路径?

java - 打包 jar 时 Maven 无法检索 buildNumber

java - List 与 ArrayList 作为引用类型?

java - AssertThat 错误 : Cannot access path (java. nio.file.Path 未找到)