下载远程jar文件并监控下载进度

时间:2009-06-16 04:36:06

标签: java jar applet

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

我之所以需要这样做是因为我正在尝试将JavaFX applet分成多个模块,可以按需下载。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

您可能需要查看自{1.6}更新10以来可用的lazy downloading

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

如何从applet中下载代码:

    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();
        }
    }