【问题标题】:How to Run .jar methods from Javascript如何从 Javascript 运行 .jar 方法
【发布时间】:2015-09-12 09:16:56
【问题描述】:

我有一个 java jar,里面有类。我需要能够在其中一个类中调用方法。它必须在本地客户端,而不是对服务器而不是 Web 服务的 ajax 调用。我的 .jar 就在我的 html 页面旁边,我需要能够从 javascript/html 进行 java 方法调用。

我只需要一种方法来调用java方法,我尝试过的这些方法甚至可能不是最好的方法。只是寻求帮助。

我已经尝试了多种方法,但都没有成功。也许我做错了什么,或者<applet> 不再支持chrome v42 and up.

.jar 中的

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 站点。不使用罐子时,即。 &lt;applet id="TDAPP" name="TDAPP" code="TDecoderApplet.class" codebase="files/" width="5" height="5" &gt; &lt;/applet&gt; 一切正常。一旦我尝试 jar 类文件,我就会在控制台中收到 'Error: Error calling method on NPObject!' 。我不知道我应该怎么做才能解决这个问题。
  • 这就是我尝试使用 jar 文件的方式:&lt;applet id="TDAPP" name="TDAPP" code="TDecoderApplet.class" archive="files/TDAPP.jar" width="5" height="5" &gt; &lt;/applet&gt;。在 Oracle 网站上有很多关于安全问题的清单文件的讨论。我认为我的担忧并没有那么远,但也许我应该如此。我已将简单清单文件添加到 jar 中,但出现相同的错误。
  • 顺便说一下,我正在使用最近的 Firefox 下载

标签: javascript java html google-chrome jar


【解决方案1】:

您没有在 JS 代码中定义 app 变量。有关从 JS 运行和调用小程序的示例,请参阅 this tutorial

实际执行此操作可能不是一个好主意,在纯 JS 中实现您想要执行的操作会更好。 JS 引擎在过去几年中变得相当快,并且由于在其中发现/利用了许多安全漏洞,浏览器对 java 浏览器插件的要求也变得更加严格。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-25
    相关资源
    最近更新 更多