【发布时间】:2015-09-12 09:16:56
【问题描述】:
我有一个 java jar,里面有类。我需要能够在其中一个类中调用方法。它必须在本地客户端,而不是对服务器而不是 Web 服务的 ajax 调用。我的 .jar 就在我的 html 页面旁边,我需要能够从 javascript/html 进行 java 方法调用。
我只需要一种方法来调用java方法,我尝试过的这些方法甚至可能不是最好的方法。只是寻求帮助。
我已经尝试了多种方法,但都没有成功。也许我做错了什么,或者<applet> 不再支持chrome v42 and up.
Java 类
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>
第二次尝试 - Applet 中间出现拼图,显示“不支持该插件”,在控制台中出现此错误 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>
非常感谢您的帮助。
【问题讨论】:
-
我怀疑你将无法做你正在尝试的事情。即使小程序仍然有效,您也不能将任何旧的 .jar 文件视为小程序。
-
我有一个非常相似的问题,并且已经遍及 Oracle 站点。不使用罐子时,即。
<applet id="TDAPP" name="TDAPP" code="TDecoderApplet.class" codebase="files/" width="5" height="5" > </applet>一切正常。一旦我尝试 jar 类文件,我就会在控制台中收到 'Error: Error calling method on NPObject!' 。我不知道我应该怎么做才能解决这个问题。 -
这就是我尝试使用 jar 文件的方式:
<applet id="TDAPP" name="TDAPP" code="TDecoderApplet.class" archive="files/TDAPP.jar" width="5" height="5" > </applet>。在 Oracle 网站上有很多关于安全问题的清单文件的讨论。我认为我的担忧并没有那么远,但也许我应该如此。我已将简单清单文件添加到 jar 中,但出现相同的错误。 -
顺便说一下,我正在使用最近的 Firefox 下载
标签: javascript java html google-chrome jar