0

我正在尝试在 Applet1 中调用一个方法,这是我来自 JarClassLoader 的主要小程序,用于调用此小程序。还有一个 AppletLauncher 小程序,我正在从其中启动 Applets。我的代码是这样的。

public class AppletLauncher extends JApplet {
private JarClassLoader jcl;
public void init() {
    System.setProperty("JarClassLoader.logger.level", "INFO");
    System.setProperty("JarClassLoader.logger.area", "JAR,NATIVE,RESOURCE");
    jcl = new JarClassLoader();
    try {
        jcl.initApplet("Applet1", this);
    } catch (Throwable e) {
        e.printStackTrace();
    }
}
public String method3()
{

    String a = jcl.method2();
    return a;
}
}

我的 JarClassLoader 看起来像这样..

public class JarClassLoader extends ClassLoader {
public void initApplet(String sClass, final JApplet appletParent) throws Throwable {
    Class<?> clazz = loadClass(sClass);
    logInfo(LogArea.CONFIG, "initApplet() --> %s.init(); Loader: %s", sClass, clazz.getClassLoader());
    applet = (JApplet)clazz.newInstance();
    applet.setStub(new AppletStub() {
 applet.init();
    appletParent.setContentPane(applet.getContentPane());
......}
public String method2()
{
    How to call method method1 in Applet1.as class is already loaded as show in above code.     
}

我尝试过使用反射但没有奏效……对吗?我们可以用其他任何方式调用吗?我从http://www.jdotsoft.com/JarClassLoader.php..For JarClassLoader 引用了用于打包 dll 文件。

我的主要小程序看起来像这样......

public class Applet1 extends JApplet 
{ 
 ......

public String method1()
{
    return abc;
} 
}

请告诉我如何处理这个..调用该方法。最后我正在制作一个 jar 文件并将其包含在 xhtml 页面中并使用 javascript 调用它。

4

1 回答 1

1

您将需要使用 of 的三个参数Class.forName来指定您正在使用的类加载器。(单参数形式使用直接调用类的类加载器,有点调皮。)

请注意,在 Java 中加载远程代码很难安全地完成。

于 2013-07-03T14:54:35.680 回答