在没有html firebug扩展的javascript中调用java方法
我正在尝试为firebug开发一个扩展。我想在此扩展中调用一个java方法,但其中没有html,因此我无法使用applet html解决方案 这是我的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.
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),然后能够处理你的请求/回复你。这不是最简单、最快的解决方案,但您的需求也不是。