如何将两个applet Jars加载到非applet gui程序?

时间:2010-11-27 08:09:41

标签: java applet

我正在尝试找到一种方法将两个Jars(TestApplet.jar和Shared.jar)正确加载到swing gui。我已经成功加载了TestApplet.jar,但它给出了NoClassDefFoundError异常,因为我还没有找到如何加载Shared.jar。

这是页面上的HTML代码:

<applet id="testapplet" class="topspacer" codebase="http://codebase.url.com/applets/" code="TestApplet" archive="TestApplet.jar,/Shared/Shared.jar" width="645" height="465">
<param name="initmessage" value="Initializing..." />
<!-- ... Other parameters ... -->

这就是我启动TestApplet的方法:

ClassLoader clientClassLoader = new URLClassLoader(new URL[]{new URL("http://codebase.url.com/applets/TestApplet.jar")});
Applet loader = (Applet) clientClassLoader.loadClass("TestApplet").asSubclass(Applet.class).newInstance();
loader.init();
loader.start();

基本上,我如何正确加载Shared.jar以供TestApplet使用? 只是询问您是否需要更多细节或澄清。

编辑:错误是这样的:Exception in thread "main" java.lang.NoClassDefFoundError: com/shared/singleclient/SingleGame

1 个答案:

答案 0 :(得分:2)

您是否尝试将Shared.jar添加到URLClassLoader中的网址集中?像这样:

ClassLoader clientClassLoader = new URLClassLoader(new URL[]{
    new URL("http://codebase.url.com/applets/TestApplet.jar"),
    new URL("http://codebase.url.com/applets/Shared.jar")
});

或者,您可以确保父ClassLoader可以找到Shared.jar,但在URLClassLoader中包含它会更接近applet的正常环境。