0

このアプレットを呼び出すために使用される JarClassLoader からのメイン アプレットである Applet1 のメソッドを呼び出そうとしています。そして、アプレットを起動している場所から AppletLauncher アプレットがあります。

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から参照しました..dll ファイルをパッケージ化するための JarClassLoader について。

そして、私のメインアプレットは次のようになります...

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

public String method1()
{
    return abc;
} 
}

メソッドを呼び出す方法を教えてください。最後に、jarファイルを作成し、それをxhtmlページに含めて、javascriptを使用して呼び出します。

4

1 に答える 1

1

Class.forName使用するクラス ローダーを指定するには、3 つの引数 for of を使用する必要があります。(引数が 1 つの形式では、即時呼び出しクラスのクラス ローダーが使用されますが、これは少しいたずらです。)

Java でのリモート コードのロードは、安全に行うのが難しいことに注意してください。

于 2013-07-03T14:54:35.680 に答える