有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

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

    实际上这样做可能不是一个好主意,最好在纯JS中实现您想要做的事情。在过去几年中,JS引擎的速度大大加快,浏览器对java浏览器插件的要求也变得更加严格,这是因为在java浏览器插件中发现/利用了许多安全缺陷