【问题标题】:Why is getWindow() not able to be resolved?为什么 getWindow() 无法解决?
【发布时间】:2012-10-29 19:08:52
【问题描述】:

我无法解决 getWindow();出于某种原因的方法...

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();
}
}

【问题讨论】:

    标签: java javascript java-7 jsobject


    【解决方案1】:

    我认为你必须补充:

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

    【讨论】:

    • :P 如果我导入它们,你是未使用的导入。
    • 完全不正确的答案,甚至不接近正确。
    【解决方案2】:

    是否声明了“MAYSCRIPT”小程序标签参数?

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

    【讨论】:

    • 老实说,我不太确定我需要在哪里声明!
    • JSObject 用于 Java 到 Javascript 的通信(参见 docs.oracle.com/javase/6/docs/technotes/guides/plugin/…)。所以你的 html 页面中应该有一个小程序吗?
    • 这是一个独立的应用程序:p
    • “这是一个独立的应用程序” 哈哈!你认为地球上的“窗口”会返回什么? JSObject 只能在小程序环境(例如浏览器)中创建。
    • 基本上,它是基于 Java 的浏览器游戏的客户端,它从我的客户端内部的网站启动 jar,但实际上从未打开物理页面
    【解决方案3】:

    在 jdk1.7.0_11 中,我注意到 ../jre/lib/ 中有两个单独的 jar,其中包含 netscape.javascript.JSObject.class,即 jfxrt.jar 和 plugin.jar。对于我的 IDE (IntelliJ),当我为 Java 创建项目 SDK 时,它会将 jfxrt 和插件 jars 添加到类路径中。由于 jfxrt.jar 按字母顺序出现在类路径中 plugin.jar 之前,因此我的应用程序代码无法正确解析 JSObject.getWindow(...)。由于我们没有在我们的应用程序中使用 JavaFX,我只是从我的项目 Java SDK 类路径中删除了 jfxrt.jar。

    【讨论】:

    • 我已经通过重新排序 Java SDK lib 依赖关系解决了同样的问题。在 IntelliJ 上,我打开了 Project Structure->Modules->Dependencies,然后将 java 的 lib 移到了底部。
    • 有趣的是,使用 OpenJDK 8 的 javac 似乎也是如此。默认情况下,它似乎将lib/ext jar 包含到类路径中,即使我只在命令行中指定-cp plugins.jar。我必须实际删除/重命名 jfxrt.jar 才能编译它。
    猜你喜欢
    • 2011-10-04
    • 1970-01-01
    • 2017-10-02
    • 1970-01-01
    • 2017-07-20
    • 1970-01-01
    • 1970-01-01
    • 2020-05-31
    • 1970-01-01
    相关资源
    最近更新 更多