5

我们有一个作为小程序或 Java Web Start 运行的大型 Java 应用程序。而且它越来越多。典型的用户只需要一小部分类。因为Java不知道它可以在哪个jar文件中找到哪个类,所以它会加载所有jar文件,直到找到该类。如果它将加载一个不存在的类(例如资源包),那么它将加载所有 jar 文件。这减少了非常大的小带宽上的启动时间。

是否有一个小框架,我们可以仅在需要时加载插件?或者如果需要和背景更好?

当然,框架不应该因为它的大尺寸而延迟启动时间。

我认为它应该使用 URLClassLoader 进行下载。

4

3 回答 3

2

我听说您可以实现自定义类加载器,并且我已经看过有关此主题的教程。有了这个,您应该能够更精确地控制下载的内容。对不起,我自己没有试过这个。

于 2008-12-22T08:06:25.987 回答
1

这不是您问题的直接答案,但您可以通过使用Pack200显着减小 JAR 文件的大小来缓解下载速度缓慢的问题。我之前写过这可以有多么有效。

除此之外,我同意 asalamon74 使用延迟下载 JAR 文件的建议。

也许您可以优化 JAR 的顺序,以便那些包含将首先加载的类的 JAR 更早出现?

于 2008-12-20T22:25:12.697 回答
0

我认为(没有 jnlp 我不确定)您已经使用了下载属性:

<jar href="sound.jar" download="lazy"/>

由于 webstart 没有关于 jar 内容的信息,我假设如果缺少该类,它会加载所有这些内容。

虽然我从未尝试过,但是有一个<package>标签,您可以在其中给出一些提示,让 webstart 在哪里搜索类。检查这个(非常短的)文档。

于 2008-12-20T17:52:50.157 回答