1

是否可以让 Applet 使用本地 jar?

我的 Applet 应用程序需要有一些依赖项(66Mb 的 jars)。用户之前可以安装 jars,但我如何从小程序中使用它们?

我可以将它们保存到默认位置 c:/myApp 和 /usr/local/myApp

我尝试加载它们:

ClassLoader loader = URLClassLoader.newInstance(
                    new URL[]{new URL("file://" + path + "/xuggle-xuggler-5.2.jar")},
                    JNLP2Manager.getCurrentManager().getAppletClassLoader()
            );

            Thread.currentThread().setContextClassLoader(loader);

但是 jar 不会自动添加到类路径中,我的意思是,我仍然必须单独加载每个类。

执行以下工作:

 Class cls = loader.loadClass("com.xuggle.xuggler.video.ConverterFactory");
            String testString = ConverterFactory.XUGGLER_ARGB_32;

但是我可以将所有类都添加到小程序加载器中吗?

PS 我知道我不应该使用 Applet ,但 Applet 仍然最适合我的应用程序。

4

1 回答 1

2

不,至少对于未签名的小程序来说,这是不可能的。applet 类路径是相对于其代码库定义的,该代码库通常是从其中下载 applet 的。

以下是可能的解决方法

  1. 对于签名的小程序,您可以使用UrlClassLoader从本地 jar 读取类的自定义类加载器(使用)。
  2. 对于未签名的小程序,您可以将本地 jar上传到服务器,然后从那里使用它。我认为这还不错:从用户的角度来看,他只是“帮助”应用程序找到自定义 jar 的位置。真正发生的是 jar 被上传到服务器,applet 从那里读取它。这种方式可以使用带有 type 输入标签的常规 HTML 表单来实现file。使用 AJAX 可以向用户隐藏很多细节。
于 2012-03-20T15:41:01.733 回答