【问题标题】:Download remote jar files and monitor the download progress下载远程jar文件并监控下载进度
【发布时间】:2009-06-17 05:43:14
【问题描述】:

我是 Java 新手(我来自 ActionScript 背景),我想知道是否有办法在小程序中下载和监控远程 jar 文件的下载进度,然后使用类和其他资源在下载的 jar 中。我知道有一个 JarURLConnection 类,但我找不到通过该类监控下载进度的方法。

我需要这样做的原因是因为我正在尝试将 JavaFX 小程序分成模块,按需下载。

【问题讨论】:

    标签: java jar applet


    【解决方案1】:

    下载所有 Jar 文件的默认行为通常是可以接受的,它会下载并显示一个进度条,但听起来您需要拆分内容。 AFAIK,手动下载类并添加到类路径(或自定义类加载器)不能在没有签署你的小程序的情况下完成,这是我猜你不想遵循的路径。

    您可能想看看lazy downloading,自 Java 1.6 更新 10 起可用。

    在不知道您的确切要求的情况下,我对如何拆分它的一般建议是下载初始 Jar 中的所有类文件并根据需要下载资源(图像/声音/属性)。

    如何从小程序中下载的代码:

        URL url = new URL(getCodeBase(), filename);
        URLConnection urlConnection = url.openConnection();
        BufferedInputStream bufferedInputStream = null;
        try {
            bufferedInputStream = new BufferedInputStream(urlConnection.getInputStream());
            // ... input data
        } finally {
            if (bufferedInputStream != null) {
                bufferedInputStream.close();
            }
        }
    

    【讨论】:

    【解决方案2】:

    您可以定义一个自定义ClassLoader 并将其用于您的远程模块。这将让您准确控制类字节如何传输到您的小程序。如果您想一次加载整个 JAR 文件,您可以让您的自定义类加载器在需要时下载 JAR 文件并使用 JarInputStream 解压缩它们。

    【讨论】:

      猜你喜欢
      • 2013-10-31
      • 1970-01-01
      • 1970-01-01
      • 2012-08-20
      • 2021-06-23
      • 1970-01-01
      • 2018-04-08
      • 1970-01-01
      • 2011-02-07
      相关资源
      最近更新 更多