4

我在 web 中解聚 JavaFX 应用程序时遇到了问题,我只遇到了 IE10 或 IE9 的问题,更准确地说,当 Document Mode 为 9 时,问题是浏览器无法识别将由 JavaFx 定义的对象“app”加载。这个对象“app”用参数调用函数“tellme”。我希望在浏览器控制台上看到日志:“____a OK maher”,但我得到的是一条错误消息:

SCRIPT438: Object doesn't support property or method 'tellme' 

其他信息:

  • 启动 Java 后会提示发布者、权限,请参见 Image#1

在此处输入图像描述

接受并继续。

  • 网站请求访问和控制 JavaFx 应用程序(有 JS <==> JavaFX ),因此有一个安全警告并请求用户允许。见图片#2

在此处输入图像描述

在这里我注意到,在文档模式 IE9 中,我在第一个之后立即收到此警告..但在其他浏览器(包括 DM IE8、DM IE7)上,它出现在按下 clicl 之后,这意味着在通过 app.tellme 从 JS 调用 JavaFx 之后

  • 再次仅在 IE 上出现问题,在其他浏览器上正常(Chrome、Opera、FF、.. 等)对于早期版本的 IE 7 和 8 也没有问题;简而言之,只有当 IE 文档模式设置为 IE9 时,我才会遇到问题

  • 这与签名无关..我有一个有效的签名代码证书..当然我在清单上设置了正确的权限(代码库,权限,......等)但实际上这与这个问题无关..只有第二个警告消失但问题仍然存在。

  • 模拟问题:

    1-使用 IE9 或 IE10 打开 main.html(代码如下),按 F12 将文档模式设置为 IE 9。

    2-按开始,然后接受以运行该应用程序,然后接受以下提示以允许通过 JS 访问 JavaFx。

    3-按 clicl,在浏览器控制台上,您将看到错误消息.. 我希望解决此问题以查看输出:“____a OK maher”

代码:

main.java(JavaFX 应用程序):更新

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.im.oor;

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import netscape.javascript.JSObject;

/**
 *
 * @author maher
 */
public class Main extends Application {

    @Override
    public void start(Stage primaryStage) {



        Button btn = new Button();
        btn.setText("Say 'Hello World'");
        btn.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent event) {
                System.out.println("Hello World!");
            }
        });

        StackPane root = new StackPane();
        root.getChildren().add(btn);

        Scene scene = new Scene(root, 300, 250);
        publishServices();
        primaryStage.setTitle("Hello World!");
        primaryStage.setScene(scene);
        primaryStage.show();
    }



    private static JSObject jsWin;

    private void publishServices() {

        try {


        JSObject jsWins = getHostServices().getWebContext();

        jsWins.setMember("app", new JavaAplicationCallBack());

        } catch (Exception e) {
            System.err.println("error with JSObject : "+e.getMessage());
        }
    }

    public class JavaAplicationCallBack {

        public String tellme(String uu) {
            return "OK " + uu;

        }
    }

    /**
     * The main() method is ignored in correctly deployed JavaFX application.
     * main() serves only as fallback in case the application can not be
     * launched through deployment artifacts, e.g., in IDEs with limited FX
     * support. NetBeans ignores main().
     *
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        launch(args);
    }
}

main.html(网页):更新

<!DOCTYPE html>
<html>
    <head>
        <!--<meta http-equiv="X-UA-Compatible" content="IE=8">-->
        <script src="web-files/dtjava.js"  type="text/javascript" ></script>
        <script src="jfx.js"  type="text/javascript" ></script>
        <script src="http://code.jquery.com/jquery-1.7.min.js">
        </script>
        <script>
            $(document).ready(function() {
                $("a.ll").live("click", function(event) {
                    callit('hi ');
                });
            });
        </script>
    </head>
    <body>
        <a href="#" onclick="launchit();" >start</a>
        <a class='ll' href="#"  >clicl</a>
        <!-- Applet will be inserted here -->
        <div id='javafx-app-placeholder'></div>
    </body>
</html>

jfx.js(在 main.html 上使用的 javascript):更新

function javafxEmbed() {
    dtjava.embed(
            {
                url : 'TestIdleCallJavaFx.jnlp',
                //url: 'Testjfx.jnlp',
                placeholder: 'javafx-app-placeholder',
                width: 300,
                height: 100,
                jnlp_content: 'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxqbmxwIHNwZWM9IjEuMCIgeG1sbnM6amZ4PSJodHRwOi8vamF2YWZ4LmNvbSIgaHJlZj0iVGVzdElkbGVDYWxsSmF2YUZ4LmpubHAiPg0KICA8aW5mb3JtYXRpb24+DQogICAgPHRpdGxlPlRlc3RJZGxlQ2FsbEphdmFGeDwvdGl0bGU+DQogICAgPHZlbmRvcj5NYWhlcjwvdmVuZG9yPg0KICAgIDxkZXNjcmlwdGlvbj5TYW1wbGUgSmF2YUZYIDIuMCBhcHBsaWNhdGlvbi48L2Rlc2NyaXB0aW9uPg0KICAgIDxvZmZsaW5lLWFsbG93ZWQvPg0KICA8L2luZm9ybWF0aW9uPg0KICA8cmVzb3VyY2VzPg0KICAgIDxqZng6amF2YWZ4LXJ1bnRpbWUgdmVyc2lvbj0iMi4yKyIgaHJlZj0iaHR0cDovL2phdmFkbC5zdW4uY29tL3dlYmFwcHMvZG93bmxvYWQvR2V0RmlsZS9qYXZhZngtbGF0ZXN0L3dpbmRvd3MtaTU4Ni9qYXZhZngyLmpubHAiLz4NCiAgPC9yZXNvdXJjZXM+DQogIDxyZXNvdXJjZXM+DQogICAgPGoyc2UgdmVyc2lvbj0iMS42KyIgaHJlZj0iaHR0cDovL2phdmEuc3VuLmNvbS9wcm9kdWN0cy9hdXRvZGwvajJzZSIvPg0KICAgIDxqYXIgaHJlZj0iVGVzdElkbGVDYWxsSmF2YUZ4LmphciIgc2l6ZT0iMjE3MTkiIGRvd25sb2FkPSJlYWdlciIgLz4NCiAgPC9yZXNvdXJjZXM+DQo8c2VjdXJpdHk+DQogIDxhbGwtcGVybWlzc2lvbnMvPg0KPC9zZWN1cml0eT4NCiAgPGFwcGxldC1kZXNjICB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCIgbWFpbi1jbGFzcz0iY29tLmphdmFmeC5tYWluLk5vSmF2YUZYRmFsbGJhY2siICBuYW1lPSJUZXN0SWRsZUNhbGxKYXZhRngiID4NCiAgICA8cGFyYW0gbmFtZT0icmVxdWlyZWRGWFZlcnNpb24iIHZhbHVlPSIyLjIrIi8+DQogIDwvYXBwbGV0LWRlc2M+DQogIDxqZng6amF2YWZ4LWRlc2MgIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIiBtYWluLWNsYXNzPSJvcmcuaW0ub29yLk1haW4iICBuYW1lPSJUZXN0SWRsZUNhbGxKYXZhRngiIC8+DQogIDx1cGRhdGUgY2hlY2s9ImFsd2F5cyIvPg0KPC9qbmxwPg0K'
                //jnlp_content: 'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxqbmxwIHNwZWM9IjEuMCIgeG1sbnM6amZ4PSJodHRwOi8vamF2YWZ4LmNvbSIgaHJlZj0iVGVzdGpmeC5qbmxwIj4NCiAgPGluZm9ybWF0aW9uPg0KICAgIDx0aXRsZT5UZXN0amZ4PC90aXRsZT4NCiAgICA8dmVuZG9yPm1haGVyPC92ZW5kb3I+DQogICAgPGRlc2NyaXB0aW9uPlNhbXBsZSBKYXZhRlggMi4wIGFwcGxpY2F0aW9uLjwvZGVzY3JpcHRpb24+DQogICAgPG9mZmxpbmUtYWxsb3dlZC8+DQogIDwvaW5mb3JtYXRpb24+DQogIDxyZXNvdXJjZXM+DQogICAgPGpmeDpqYXZhZngtcnVudGltZSB2ZXJzaW9uPSIyLjIrIiBocmVmPSJodHRwOi8vamF2YWRsLnN1bi5jb20vd2ViYXBwcy9kb3dubG9hZC9HZXRGaWxlL2phdmFmeC1sYXRlc3Qvd2luZG93cy1pNTg2L2phdmFmeDIuam5scCIvPg0KICA8L3Jlc291cmNlcz4NCiAgPHJlc291cmNlcz4NCiAgICA8ajJzZSB2ZXJzaW9uPSIxLjYrIiBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL3Byb2R1Y3RzL2F1dG9kbC9qMnNlIi8+DQogICAgPGphciBocmVmPSJUZXN0amZ4LmphciIgc2l6ZT0iMjAyODkiIGRvd25sb2FkPSJlYWdlciIgLz4NCiAgPC9yZXNvdXJjZXM+DQo8c2VjdXJpdHk+DQogIDxhbGwtcGVybWlzc2lvbnMvPg0KPC9zZWN1cml0eT4NCiAgPGFwcGxldC1kZXNjICB3aWR0aD0iMzAwIiBoZWlnaHQ9IjEwMCIgbWFpbi1jbGFzcz0iY29tLmphdmFmeC5tYWluLk5vSmF2YUZYRmFsbGJhY2siICBuYW1lPSJUZXN0amZ4IiA+DQogICAgPHBhcmFtIG5hbWU9InJlcXVpcmVkRlhWZXJzaW9uIiB2YWx1ZT0iMi4yKyIvPg0KICA8L2FwcGxldC1kZXNjPg0KICA8amZ4OmphdmFmeC1kZXNjICB3aWR0aD0iMzAwIiBoZWlnaHQ9IjEwMCIgbWFpbi1jbGFzcz0idGVzdGpmeC5UZXN0amZ4IiAgbmFtZT0iVGVzdGpmeCIgLz4NCiAgPHVwZGF0ZSBjaGVjaz0iYWx3YXlzIi8+DQo8L2pubHA+DQo='
            },
            {
                javafx: '2.2+'

            },
            {}
        );

        }






function launchit(){
dtjava.addOnloadCallback(javafxEmbed);
}


function callit(aa){
alert(aa);
console.log("____ "+aa);
var ttt=app.tellme("maher ");
console.log("____a "+ttt);

}
  • 请注意,如果您构建代码,它可能会生成与我所拥有的不同的 jnlp_content。所以只需更新它。

* 我将所有文件压缩到http://ulozto.cz/xV2vrQTd/javafx-dm-ie9-zip

* 源代码在这里:http: //247workers.com/JFX_src/TestIdleCallJavaFx.zip

以下是如何成功使其工作的一些步骤:

1-我正在使用最新版本的 JDK/JRE 7u45

2- 使用菜单文件 ==> 导入 ==> 从 zip 导入

3-清洁和建造

4-将项目中 dist 下的所有内容复制到目录 work 中,如果那里已经有东西,则覆盖任何东西。

5-通过控制面板部署时最好显示Java控制台==> Java ==>高级==>在Java控制台下,选择显示控制台。

  • 关于使用

<meta http-equiv="X-UA-Compatible" content="IE=8">

强制使用较旧的渲染引擎,但这不会被我们正在从事的企业项目所接受。

我希望我能在这里得到帮助......对不起,很长的帖子,但我想非常具体并提供所有必要的信息。

4

1 回答 1

1

这是由于 Java 插件中的错误造成的。据我所知,没有解决方法,并且该错误仍然存​​在于 Java 8 中。

出于某种原因,在 IE9 和 IE10 中(edge 根本不会为我加载 Java)该toString()方法在您想要向浏览器公开的对象上调用。通过使用开发人员工具检查app.

JPI_PLUGIN2_DEBUG=1我已经为浏览器和插件(和)打开了调试,JPI_PLUGIN2_VERBOSE=1我看到 IE8 和 IE9 模式之间存在一些差异,但没有任何东西显示我在插件代码中将对象转换为String.

下一步是尝试使用自定义构建覆盖插件,以查看问题实际发生在哪里。但是,这可能比它的价值更麻烦,因为已经确定该错误存在于插件中并且没有已知的解决方法。换句话说,即使找到了修复程序,您也可能无法将 Java 的修补版本部署给您的企业客户。看起来唯一的解决方案是在 documentMode 8 或更低版本中使用不同的浏览器或 IE。

为了完整起见,我已经包含了一些日志。注意:我更改了 jnlp 和类的名称以镜像我的环境,但结果是一样的。

IE9 控制台日志

NativeLibLoader: resolving loaded C:\Program Files (x86)\Java\jre8\bin\jp2iexp.d
ll
   (Succeeded)
IExplorerPlugin.IExplorerPlugin(0x3aaefe8)
IExplorerPlugin.IExplorerPlugin(1.8.0)
NativeLibLoader: C:\PROGRA~2\Java\jre8\lib\bin\jp2native.dll doesn't exist
NativeLibLoader: trying to load C:\PROGRA~2\Java\jre8\bin\jp2native.dll
  (Succeeded)
IExplorerPlugin.addParameters(cAxControl = 0x3aaefe8)
IExplorerPlugin.CreateControlWindow(cAxControl = 0x3aaefe8, hWndParent = 0x3071e
, hWndControlWindow = 0x1d0348)
IExplorerPlugin.SetObjectRects(cAxControl = 0x3aaefe8, left = 8, right = 308, to
p = 26, bottom = 126, appletID = null, activated = false)
{IExplorerPlugin.InPlaceActivate(cAxControl = 0x3aaefe8) entered
}IExplorerPlugin.InPlaceActivate(cAxControl = 0x3aaefe8) exited
IExplorerPlugin.SetObjectRects(cAxControl = 0x3aaefe8, left = 8, right = 308, to
p = 26, bottom = 126, appletID = null, activated = true)
  Attempting to start applet
1 JavaFX runtime found.
  1) JavaFX 8.0.0 found at C:\PROGRA~2\Java\jre8\
JVMLauncher.start: launcher params:
        <-Djnlp.fx=8.0.0>
        <-Xbootclasspath/a:C:\PROGRA~2\Java\jre8\lib\deploy.jar;C:\PROGRA~2\Java
\jre8\lib\javaws.jar;C:\PROGRA~2\Java\jre8\lib\plugin.jar>
        <-Djava.class.path=C:\PROGRA~2\Java\jre8\classes>
        <--->
        <-->
        <sun.plugin2.main.client.PluginMain>
        <read_pipe_name=jpi2_pid2136_pipe2,write_pipe_name=jpi2_pid2136_pipe3>
JVMLauncher.start(): now - user.startApplet(): 14520 us
JVMLauncher.processArg[0]: C:\Program Files (x86)\Java\jre8\bin\jp2launcher.exe
JVMLauncher.processArg[1]: -D__jvm_launched=22791732422
JVMLauncher.processArg[2]: -D__applet_launched=22791717902
JVMLauncher.processArg[3]: -Djnlp.fx=8.0.0
JVMLauncher.processArg[4]: sun.plugin2.main.client.PluginMain
JVMLauncher.processArg[5]: read_pipe_name=jpi2_pid2136_pipe2,write_pipe_name=jpi
2_pid2136_pipe3
JVMLauncher.processArgs total len: 234, custArgsMaxLen: 8044
JVMLauncher.afterStart(): starting JVM process watcher
JVMInstance.start: JVMID original params array:
        [0][0]: <-Djnlp.fx=8.0.0>
        [0][1]: <-Xbootclasspath/a:C:\PROGRA~2\Java\jre8\lib\deploy.jar;C:\PROGR
A~2\Java\jre8\lib\javaws.jar;C:\PROGRA~2\Java\jre8\lib\plugin.jar>
        [0][2]: <-Djava.class.path=C:\PROGRA~2\Java\jre8\classes>
        [4][0]: <null>
JVMInstance for 1.8.0.ea sending start applet message
  isRelaunch: false
  appletLaunchTime: 22791717902
  Parameters:
    jnlp_href=Main.jnlp
    launchjnlp=
    code=dummy.class
    java_status_events=true
    type=application/x-java-applet
    separate_jvm=true
    javafx_version=2.2+
    javafx_applet_id=dtjava-app-1
    codebase=http://172.16.218.1/
    width=300
    name=dtjava-app-1
    id=dtjava-app-1
    scriptable=true
    height=100
JVMInstance.registerApplet for applet ID 1, plugin sun.plugin2.main.server.IExpl
orerPlugin@44dec8
  Received applet ID [AppletID 1]
JVMInstance (1.8.0.ea) processing GetProxyMessage
Delegate to plugin instance on browser main thread.
Browser main thread handle GetProxyMessage.
JVMInstance (1.8.0.ea) processing GetProxyMessage
Delegate to plugin instance on browser main thread.
Browser main thread handle GetProxyMessage.
JVMInstance (1.8.0.ea) processing CookieOpMessage
JVMInstance (1.8.0.ea) processing CookieOpMessage
JVMInstance (1.8.0.ea) processing StartAppletAckMessage with:
        appletID: 1
JVMInstance (1.8.0.ea) processing StartAppletAckMessage with:
        appletID: 1
JVMInstance (1.8.0.ea) processing JavaScriptGetWindowMessage
  LiveConnectSupport: retained [BrowserSideObject 0x3ecd730] for applet 1
JVMInstance (1.8.0.ea) processing StartAppletAckMessage with:
        appletID: 1
JVMInstance (1.8.0.ea) processing JavaScriptGetWindowMessage
JVMInstance (1.8.0.ea) processing JavaScriptEvalMessage
JVMInstance (1.8.0.ea) processing JavaScriptMemberOpMessage
LiveConnectSupport.sendRemoteJavaObjectOp: CALL_METHOD "toString"
AbstractPlugin.doJavaObjectOp starting to wait for result ID 1
JVMInstance (1.8.0.ea) processing JavaReplyMessage
JVMInstance received JavaReplyMessage with result ID 1
AbstractPlugin.doJavaObjectOp ending wait for result ID 1
LiveConnectSupport: result [ResultID 1] = JavaApplicationCallBack Test
JVMInstance for 1.8.0.ea sending release remote object message for ID 1
JVMInstance (1.8.0.ea) processing JavaScriptReleaseObjectMessage
JVMInstance (1.8.0.ea) processing JavaScriptReleaseObjectMessage
  LiveConnectSupport: schedule release [BrowserSideObject 0x3ecd730] for applet
1

IE8 控制台日志

NativeLibLoader: resolving loaded C:\Program Files (x86)\Java\jre8\bin\jp2iexp.d
ll
   (Succeeded)
IExplorerPlugin.IExplorerPlugin(0x4c1efe8)
IExplorerPlugin.IExplorerPlugin(1.8.0)
NativeLibLoader: C:\PROGRA~2\Java\jre8\lib\bin\jp2native.dll doesn't exist
NativeLibLoader: trying to load C:\PROGRA~2\Java\jre8\bin\jp2native.dll
  (Succeeded)
IExplorerPlugin.addParameters(cAxControl = 0x4c1efe8)
IExplorerPlugin.CreateControlWindow(cAxControl = 0x4c1efe8, hWndParent = 0xd04b4
, hWndControlWindow = 0x1a030a)
IExplorerPlugin.SetObjectRects(cAxControl = 0x4c1efe8, left = -9990, right = -96
90, top = 28, bottom = 128, appletID = null, activated = false)
{IExplorerPlugin.InPlaceActivate(cAxControl = 0x4c1efe8) entered
}IExplorerPlugin.InPlaceActivate(cAxControl = 0x4c1efe8) exited
IExplorerPlugin.SetObjectRects(cAxControl = 0x4c1efe8, left = -9990, right = -96
90, top = 28, bottom = 128, appletID = null, activated = true)
  Attempting to start applet
1 JavaFX runtime found.
  1) JavaFX 8.0.0 found at C:\PROGRA~2\Java\jre8\
JVMLauncher.start: launcher params:
        <-Djnlp.fx=8.0.0>
        <-Xbootclasspath/a:C:\PROGRA~2\Java\jre8\lib\deploy.jar;C:\PROGRA~2\Java
\jre8\lib\javaws.jar;C:\PROGRA~2\Java\jre8\lib\plugin.jar>
        <-Djava.class.path=C:\PROGRA~2\Java\jre8\classes>
        <--->
        <-->
        <sun.plugin2.main.client.PluginMain>
        <read_pipe_name=jpi2_pid2740_pipe2,write_pipe_name=jpi2_pid2740_pipe3>
JVMLauncher.start(): now - user.startApplet(): 12763 us
JVMLauncher.processArg[0]: C:\Program Files (x86)\Java\jre8\bin\jp2launcher.exe
JVMLauncher.processArg[1]: -D__jvm_launched=25562522742
JVMLauncher.processArg[2]: -D__applet_launched=25562509979
JVMLauncher.processArg[3]: -Djnlp.fx=8.0.0
JVMLauncher.processArg[4]: sun.plugin2.main.client.PluginMain
JVMLauncher.processArg[5]: read_pipe_name=jpi2_pid2740_pipe2,write_pipe_name=jpi
2_pid2740_pipe3
JVMLauncher.processArgs total len: 234, custArgsMaxLen: 8044
JVMLauncher.afterStart(): starting JVM process watcher
JVMInstance.start: JVMID original params array:
        [0][0]: <-Djnlp.fx=8.0.0>
        [0][1]: <-Xbootclasspath/a:C:\PROGRA~2\Java\jre8\lib\deploy.jar;C:\PROGR
A~2\Java\jre8\lib\javaws.jar;C:\PROGRA~2\Java\jre8\lib\plugin.jar>
        [0][2]: <-Djava.class.path=C:\PROGRA~2\Java\jre8\classes>
        [4][0]: <null>
JVMInstance for 1.8.0.ea sending start applet message
  isRelaunch: false
  appletLaunchTime: 25562509979
  Parameters:
    jnlp_href=Main.jnlp
    launchjnlp=
    code=dummy.class
    java_status_events=true
    type=application/x-java-applet
    separate_jvm=true
    javafx_version=2.2+
    javafx_applet_id=dtjava-app-1
    codebase=http://172.16.218.1/
    width=300
    name=dtjava-app-1
    id=dtjava-app-1
    scriptable=true
    height=100
JVMInstance.registerApplet for applet ID 1, plugin sun.plugin2.main.server.IExpl
orerPlugin@66906f
  Received applet ID [AppletID 1]
JVMInstance (1.8.0.ea) processing GetProxyMessage
Delegate to plugin instance on browser main thread.
Browser main thread handle GetProxyMessage.
JVMInstance (1.8.0.ea) processing GetProxyMessage
Delegate to plugin instance on browser main thread.
Browser main thread handle GetProxyMessage.
JVMInstance (1.8.0.ea) processing CookieOpMessage
JVMInstance (1.8.0.ea) processing CookieOpMessage
JVMInstance (1.8.0.ea) processing StartAppletAckMessage with:
        appletID: 1
JVMInstance (1.8.0.ea) processing StartAppletAckMessage with:
        appletID: 1
JVMInstance (1.8.0.ea) processing JavaScriptGetWindowMessage
  LiveConnectSupport: retained [BrowserSideObject 0x397ca24] for applet 1
JVMInstance (1.8.0.ea) processing StartAppletAckMessage with:
        appletID: 1
JVMInstance (1.8.0.ea) processing JavaScriptGetWindowMessage
JVMInstance (1.8.0.ea) processing JavaScriptEvalMessage
JVMInstance (1.8.0.ea) processing JavaScriptMemberOpMessage
IExplorerPlugin.SetObjectRects(cAxControl = 0x4c1efe8, left = 10, right = 310, t
op = 28, bottom = 128, appletID = [AppletID 1], activated = true)
JVMInstance (1.8.0.ea) processing JavaScriptReleaseObjectMessage
JVMInstance (1.8.0.ea) processing JavaScriptReleaseObjectMessage
  LiveConnectSupport: schedule release [BrowserSideObject 0x397ca24] for applet
1

在 IE9 中调用 toString() 的堆栈跟踪

at Main$JavaAplicationCallBack.toString(Main.java:75)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.plugin.javascript.Trampoline.invoke(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.plugin.javascript.JSClassLoader.invoke(Unknown Source)
at sun.plugin2.liveconnect.JavaClass$MethodInfo.invoke(Unknown Source)
at sun.plugin2.liveconnect.JavaClass$MemberBundle.invoke(Unknown Source)
at sun.plugin2.liveconnect.JavaClass.invoke0(Unknown Source)
at sun.plugin2.liveconnect.JavaClass.invoke(Unknown Source)
at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo$DefaultInvocationDelegate.invoke(Unknown Source)
at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo.doObjectOp(Unknown Source)
at sun.plugin2.main.client.LiveConnectSupport.doObjectOp(Unknown Source)
at sun.plugin2.main.client.MessagePassingJSObject.waitForReply(Unknown Source)
at sun.plugin2.main.client.MessagePassingJSObject.doMemberOp(Unknown Source)
at sun.plugin2.main.client.MessagePassingJSObject.setMember(Unknown Source)
at Main.publishServices(Main.java:55)
at Main.start(Main.java:38)
at com.sun.javafx.applet.FXApplet2$2.run(Unknown Source)
at com.sun.javafx.application.PlatformImpl$6$1.run(Unknown Source)
at com.sun.javafx.application.PlatformImpl$6$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl$6.run(Unknown Source)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.access$300(Unknown Source)
at com.sun.glass.ui.win.WinApplication$4$1.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
于 2014-01-27T21:00:26.437 回答