有没有 Java Applet 的插件框架?

发布于 2024-07-10 19:40:46 字数 322 浏览 6 评论 0原文

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

是否有一个小型框架,我们可以仅在需要时加载插件? 或者如果需要并且在后台更好?

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

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

We have a large Java application that run as applet or Java Web Start. And it grow more and more. Typical a user need only a small part of the classes. Because Java does not know which class can it found in which jar file that it load all jar files until it find the class. If it will load a class that not exist (for example a resource bundle) then it load all jar files. This reduce the start time on a small bandwidth very large.

Is there a small framework with which we can load the plugins only if needed? Or better if needed and on background?

Of course the framework should not delay the start time self with it large size.

I think it should use a URLClassLoader for downloading.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

欢烬 2024-07-17 19:40:46

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

I've heard that you can implement custom class loaders and I've seen tutorials on this subject. With this you should be able to control what gets downloaded more precisely. Sorry, I haven't tried this myself.

十秒萌定你 2024-07-17 19:40:46

这不是您问题的直接答案,但您可以使用 Pack200 显着减小 JAR 文件的大小。 我之前写过关于这有多有效。

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

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

This is not a direct answer to your question, but you might be able to mitigate the slow downloads by using Pack200 to significantly reduce the size of your JAR files. I've previously written about how effective this can be.

Other than that, I'd agree asalamon74's suggestion to use lazy downloading of JAR files.

Perhaps you can optimise the order of the JARs so that those that contain classes that will be loaded first appear earlier?

烟火散人牵绊 2024-07-17 19:40:46

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

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

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

虽然我从未尝试过,但是有一个 标记,您可以在其中向 webstart 提供一些提示,以便在哪里搜索类。 检查(非常短)文档。

I think (without jnlp I'm not sure) you already use the download property:

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

Since webstart has no information about the jar contents I assume it loads all of them if the class is missing.

Although I've never tried, but there is a <package> tag where you can give some hints to the webstart where to search for classes. Checks this (very short) documentation.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文