我们有一个大型Java应用程序,可以作为applet或Java Web Start运行。它越来越多。典型的用户只需要一小部分类。因为Java不知道哪个类可以在哪个jar文件中找到它加载所有jar文件,直到找到该类。如果它将加载一个不存在的类(例如资源包),那么它将加载所有jar文件。这可以减小非常大的小带宽上的启动时间。
是否有一个小框架,只有在需要时我们才能加载插件?或者如果需要或在背景上更好?
当然,框架不应该以大尺寸延迟自己的开始时间。
我认为它应该使用URLClassLoader进行下载。
答案 0 :(得分:2)
我听说你可以实现自定义类加载器,我已经看过关于这个主题的教程。有了这个,您应该能够更精确地控制下载的内容。对不起,我自己没试过。
答案 1 :(得分:1)
这不是您问题的直接答案,但您可以使用Pack200来显着减少JAR文件的大小,从而减轻下载速度。我以前written关于这可能有多有效。
除此之外,我同意asalamon74建议使用懒惰下载JAR文件。
也许你可以优化JAR的顺序,以便那些包含将首先加载的类的那些出现在前面?
答案 2 :(得分:0)
我认为(没有jnlp我不确定)你已经使用了下载属性:
<jar href="sound.jar" download="lazy"/>
由于webstart没有关于jar内容的信息,我认为如果缺少类,它会加载所有这些内容。
虽然我从未尝试过,但有一个<package>
标记,您可以在其中向webstart提供一些提示,以便在哪里搜索类。检查this(非常简短)文档。