java如何运行。来自Javascript的jar方法
我有一个java jar,里面有类。我需要能够调用其中一个类中的方法。它必须在本地客户端,而不是对服务器的ajax调用,而不是Web服务。我有一本书。jar就在我的html页面旁边,我需要能够从javascript/html调用java方法
我只需要一种调用java方法的方法,我尝试的这些方法甚至可能不是最好的方法。只是想寻求帮助
我已经尝试了多种方法,但都没有成功。也许我做错了什么,或者chrome v42 and up.不再支持<applet>
Java中的类。jar
import java.applet.Applet;
public class MethodInvocation extends Applet{
public String helloWorld() {
System.out.println("Hello World!");
return "Hello JavaScript, I came from Java";
}
}
第一次尝试-无法获取chrome消息
<applet archive="JavaLibrary.jar" code="MethodInvocation.class" name="myApplet" width="1" height="1"></applet>
<script language="javascript">
var javaMessage = document.myApplet.helloWorld();
console.log("Java Message Received: " + javaMessage);
</script>
第二次尝试-小程序出现时,中间有一块拼图,上面写着“插件不受支持”,在控制台中,我看到了这个错误Uncaught ReferenceError: app is not defined
<object type="application/x-java-applet" height="300" width="550">
<param name="id" value="app">
<param name="code" value="MethodInvocation">
<param name="archive" value="JavaLibrary.jar">
</object>
<script language="javascript">
app.helloWorld();
</script>
非常感谢您的帮助
# 1 楼答案
您没有在JS代码中定义
app
变量。有关从JS运行和调用小程序的示例,请参见this tutorial实际上这样做可能不是一个好主意,最好在纯JS中实现您想要做的事情。在过去几年中,JS引擎的速度大大加快,浏览器对java浏览器插件的要求也变得更加严格,这是因为在java浏览器插件中发现/利用了许多安全缺陷