Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在没有html firebug扩展的javascript中调用java方法_Java_Javascript_Applet_Firebug - Fatal编程技术网

在没有html firebug扩展的javascript中调用java方法

在没有html firebug扩展的javascript中调用java方法,java,javascript,applet,firebug,Java,Javascript,Applet,Firebug,我正在尝试为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.

我正在尝试为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

有没有其他方法可以在javascript中调用java而不是applet html解决方案? 或者,有没有一种方法可以用这种方法来做,但不是这样

如果你需要更多的信息,我在这里

谢谢

编辑:

要解释这个程序的功能需要很长时间,请记住它在java中是不可避免的,我只需要调用一个方法,该方法接受一个参数字符串并返回一个字符串,或者最终无效

编辑2:


很抱歉,我没有想到这一点,java需要在客户端上运行。

如果您的要求是从JavaScript调用java应用程序,您需要澄清java应用程序需要在哪里运行

如果Java需要在客户端(与Firebug相同的机器)上运行,那么看起来您要么被小程序卡住了,要么需要在Java中构建一个小型web服务,以便可以通过localhost上的web API与之对话


如果你的Java可以放在某个服务器上,你可以通过web API(类似于上面的第二个选项)与你的Java应用程序对话。

如果没有小程序,你打算调用什么Java?你能描述一下你最终要完成什么吗?@thatidiotguy我编辑了我的帖子。就像我说的,我看到客户端有两个选项:applet和一个独立的应用程序,它有一个小小的web前端,所以你可以向它发出本地主机http请求。第二个选项是可能的,它肯定会工作,但要求很高。嗨,我做了很多研究,看起来你的解决方案是最简单的方法。因此,我研究了如何用Java实现Web服务,但解决方案过于复杂。你知道做一个简单java Web服务的教程吗?我发现:很抱歉给你带来困惑。我指的是正常意义上的服务,而不是现代意义上的“Web服务”。本质上,你需要一个服务器套接字监听一个足够高的端口(如12888),然后能够处理你的请求/回复你。这不是最简单、最快的解决方案,但您的需求也不是。