当前位置:  开发笔记 > 编程语言 > 正文

从签名的applet加载Java类

如何解决《从签名的applet加载Java类》经验,为你挑选了1个好方法。

如果我正在运行已签名的Java小程序,我可以从远程源(在同一个域中,甚至可能是同一个主机)加载其他类并运行它们吗?

我想在不更改页面甚至停止当前applet的情况下执行此操作.当然,所有类的总大小太大,无法一次加载它们.

有没有办法做到这一点?有没有办法用签名的applet做到这一点,并保持他们的"信心"状态?



1> jassuncao..:

我认为类在applet中是延迟加载的.按需加载.

无论如何,如果类在jar之外,你可以简单地使用applet类加载器并按名称加载它们.例如:

ClassLoader loader = this.getClass().getClassLoader();
Class clazz = loader.loadClass("acme.AppletAddon");

如果你想从jar加载类,我认为你需要用jar的url(s)创建一个新的URLClassLoader实例.

URL[] urls = new URL[]{new URL("http://localhost:8080/addon.jar")};
URLClassLoader loader = URLClassLoader.newInstance(urls,this.getClass().getClassLoader());
Class clazz = loader.loadClass("acme.AppletAddon");

默认情况下,禁止小程序创建新的类加载器.但是,如果您签署applet并包含创建新类加载器的权限,则可以执行此操作.

推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有