0

firebug の拡張機能を開発しようとしています。この拡張機能で Java メソッドを呼び出したいのですが、html がないため、applet-html ソリューションを使用できません。

これが私のJavaアプレットです:

import java.applet.Applet;
import javax.swing.JOptionPane;

public class MyApplet extends Applet {

    public void init() {
        super.init();
        System.out.println("init something");
    }

    public String jsCall(String hello) {
        System.out.println("this method is called by a js function and say :"
                + hello);
        Thread t = new Thread(new Runnable(){
            public void run(){
                JOptionPane jop1 = new JOptionPane();
                jop1.showMessageDialog(null, "Message informatif", "Information", JOptionPane.INFORMATION_MESSAGE);     
            }
        });
        t.start();

        return "lala";
    }

}

私はこれを試します:

var applet = document.createElement("applet");
applet.setAttribute("code","file:///home/dacostam/z_test/firebug-extension-examples-0bdcf15/helloamd@janodvarko.cz/chrome/content/MyApplet.class");
applet.setAttribute("id","javaToJavascriptApplet");
applet.setAttribute("mayscript","true");
applet.jsCall("HelloWorld"); //jsCall not a function

この:

var dom = document.implementation.createDocument('http://www.w3.org/1999/xhtml', 'html', null);
dom.appendChild(applet);
dom.javaToJavascriptApplet.jsCall("HelloWorld"); //jsCall not a function

ドキュメントは通常とは異なり、本文や html はありません。

applet-html ソリューションの代わりに javascript で Java を呼び出す別の方法はありますか? または、この方法でそれを行う方法はありますか?

さらに情報が必要な場合は、ここにいます。

ありがとう。

編集:

プログラムが何をするかを説明するのは長すぎるでしょう。それは必然的に Java にあることに注意してください。パラメータ文字列を受け取って文字列を返すか、最終的には無効になるメソッドを呼び出す必要があるだけです。

編集2:

申し訳ありませんが、Java はクライアント上で実行する必要があります。

4

1 に答える 1

1

JavaScript から Java アプリケーションへの呼び出しを行うことが要件である場合、Java アプリケーションをどこで実行する必要があるかを明確にする必要があります。

Java をクライアント (Firebug と同じマシン) で実行する必要がある場合、アプレットで行き詰まっているか、Java で小さな Web サービスを構築して、localhost の Web API を介して通信できるようにする必要があるようです。 .

Java をどこかのサーバーに配置できる場合は、Web API を介して Java アプリケーションと通信できます (上記の 2 番目のオプションと同様)。

于 2012-06-14T16:15:19.677 に答える