Why is getWindow() not able to be resolved?

2019-02-11 13:39发布

问题:

I can't resolve the getWindow(); method for some reason...

import java.applet.Applet;

import netscape.javascript.JSObject;

public class Class466 {
public static void method6020(Applet applet, String string, int i)
        throws Throwable {
    try {
        JSObject.getWindow(applet).eval(string);
    } catch (RuntimeException runtimeexception) {
        throw Class346.method4175(runtimeexception, new StringBuilder()
                .append("tf.a(").append(')').toString());
    }
}

public static Object method6021(Applet applet, String string, short i)
        throws Throwable {
    try {
        return JSObject.getWindow(applet).call(string, null);
    } catch (RuntimeException runtimeexception) {
        throw Class346.method4175(runtimeexception, new StringBuilder()
                .append("tf.f(").append(')').toString());
    }
}

public static Object method6022(Applet applet, String string,
        Object[] objects, byte i) throws Throwable {
    try {
        return JSObject.getWindow(applet).call(string, objects);
    } catch (RuntimeException runtimeexception) {
        throw Class346.method4175(runtimeexception, new StringBuilder()
                .append("tf.b(").append(')').toString());
    }
}

Class466() throws Throwable {
    throw new Error();
}
}

回答1:

In jdk1.7.0_11 I noticed that there are two separate jars within ../jre/lib/ that contain the netscape.javascript.JSObject.class, namely jfxrt.jar and plugin.jar. In the case of my IDE (IntelliJ), when I created a project SDK for Java it added both the jfxrt and the plugin jars to the classpath. As the jfxrt.jar appears alphabetically before plugin.jar in the classpath, my application code was not resolving JSObject.getWindow(...) properly. As we're not using JavaFX within our application I simply removed the jfxrt.jar from my projects Java SDK classpath.



回答2:

Is the "MAYSCRIPT" applet tag parameter declared ?

<APPLET code="XYZApp.class" codebase="html/" align="baseline"
 width="200" height="200" MAYSCRIPT>



回答3:

I think you have to add:

import java.awt.Window;
import java.awt.event.WindowEvent