Java 如何在客户端';s侧

Java 如何在客户端';s侧,java,javascript,Java,Javascript,我有一个JAVA代码/类/脚本,当有人单击按钮/我将处理的任何事情时,我希望执行该代码/类/脚本。要启动安装在客户端系统上的类/代码/脚本/编译程序,JavaScript中的代码应该是什么?我认为您必须在网页上部署小程序,然后才能从JavaScript调用其方法 所以,首先需要appelet,即扩展Applet的类。如果你已经有一个,你就完成了。否则,您必须创建一个API并公开已有的API。 接下来,您应该在web页面上部署小程序。使用标签或执行此操作。它很简单,你可以在网上找到很多例子 现在您

我有一个JAVA代码/类/脚本,当有人单击按钮/我将处理的任何事情时,我希望执行该代码/类/脚本。要启动安装在客户端系统上的类/代码/脚本/编译程序,JavaScript中的代码应该是什么?

我认为您必须在网页上部署小程序,然后才能从JavaScript调用其方法

所以,首先需要appelet,即扩展Applet的类。如果你已经有一个,你就完成了。否则,您必须创建一个API并公开已有的API。 接下来,您应该在web页面上部署小程序。使用标签
执行此操作。它很简单,你可以在网上找到很多例子

现在您必须能够从javascript调用这个小程序。这也很简单。例如,如果小程序的名称(我是指html属性名称的值)是myapp,并且小程序有方法foo(),则可以从javascript中调用它,如下所示:
myapp.foo()

以下是一个例子:

<applet name="myapp" archive="myjar.jar" code="com.company.MyApplet"/>
<script>
    var result = myapp.foo();
</script>

var result=myapp.foo();

我认为您必须在web页面上部署小程序,然后才能从javascript调用其方法

所以,首先需要appelet,即扩展Applet的类。如果你已经有一个,你就完成了。否则,您必须创建一个API并公开已有的API。 接下来,您应该在web页面上部署小程序。使用标签
执行此操作。它很简单,你可以在网上找到很多例子

现在您必须能够从javascript调用这个小程序。这也很简单。例如,如果小程序的名称(我是指html属性名称的值)是myapp,并且小程序有方法foo(),则可以从javascript中调用它,如下所示:
myapp.foo()

以下是一个例子:

<applet name="myapp" archive="myjar.jar" code="com.company.MyApplet"/>
<script>
    var result = myapp.foo();
</script>

var result=myapp.foo();

这取决于您试图在客户端对程序执行的操作。如果你想调用客户端机器上的其他程序,你需要做一些事情

  • 来自SSL供应商的代码签名证书
  • 您需要创建一个扩展小程序的类
  • 对于要在该客户机上执行的任何操作,都需要一个实现java.security.PrivilegedAction的类
  • 您现在应该真正使用objet和嵌入标记,而不是小程序
  • 将属性添加到允许从Javascript编写脚本的对象和嵌入标记中
  • Java代码

    public class MyApplet extends Applet
    {
       public Object myScriptAction(String arg1, String arg2)
       {
           PrivilegedAction action = new MyAction();
           action.setXXXX();
           Object o = AccessController.doPrivileged(action);
           return o;
       }
    
       private class MyAction implements PrivilegedAction
       {
           public MyAction() {}
           ...
           public Object run()
           {
               // Do something here, Runtime.exec() or something else
               Runtime.getRuntime().exec(cmdarray, envarray, workingDir);
               return myobj;
           }
       }
    }
    
    删除标记的HTML代码

        object name="myapplet" classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" width="1" height="1"
        param name="name" value="myapplet"
        param name="code" value="com.example.MyApplet"
        param name="codebase" value="<c:out value="/path/to/applet/"
        param name="archive" value="myapplet.jar"
        param name="scriptable" value="true"
        param name="mayscript" value="true"
        comment
            embed
                type="application/x-java-applet;version=1.5"
                code="com.example.MyApplet"
                java_codebase="/path/to/applet/"
                archive="myapplet.jar"
                name="myapplet"
                width="1"
                height="1"
                mayscript="true"
                scriptable="false"
                pluginspage="http://java.sun.com/products/plugin/index.html#download"
                noembed
                        Java not supported.
                noembed
            embed
         comment
    object
    
    object name=“myapplet”classid=“clsid:8AD9C840-044E-11D1-B3E9-00805F499D93”width=“1”height=“1”
    param name=“name”value=“myapplet”
    param name=“code”value=“com.example.MyApplet”
    
    param name=“codebase”value=“这取决于您试图在客户端对程序执行的操作。如果您想调用客户端机器上的其他程序,您需要做一些事情

  • 来自SSL供应商的代码签名证书
  • 您需要创建一个扩展小程序的类
  • 对于要在该客户机上执行的任何操作,都需要一个实现java.security.PrivilegedAction的类
  • 您现在应该真正使用objet和嵌入标记,而不是小程序
  • 将属性添加到允许从Javascript编写脚本的对象和嵌入标记中
  • Java代码

    public class MyApplet extends Applet
    {
       public Object myScriptAction(String arg1, String arg2)
       {
           PrivilegedAction action = new MyAction();
           action.setXXXX();
           Object o = AccessController.doPrivileged(action);
           return o;
       }
    
       private class MyAction implements PrivilegedAction
       {
           public MyAction() {}
           ...
           public Object run()
           {
               // Do something here, Runtime.exec() or something else
               Runtime.getRuntime().exec(cmdarray, envarray, workingDir);
               return myobj;
           }
       }
    }
    
    删除标记的HTML代码

        object name="myapplet" classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" width="1" height="1"
        param name="name" value="myapplet"
        param name="code" value="com.example.MyApplet"
        param name="codebase" value="<c:out value="/path/to/applet/"
        param name="archive" value="myapplet.jar"
        param name="scriptable" value="true"
        param name="mayscript" value="true"
        comment
            embed
                type="application/x-java-applet;version=1.5"
                code="com.example.MyApplet"
                java_codebase="/path/to/applet/"
                archive="myapplet.jar"
                name="myapplet"
                width="1"
                height="1"
                mayscript="true"
                scriptable="false"
                pluginspage="http://java.sun.com/products/plugin/index.html#download"
                noembed
                        Java not supported.
                noembed
            embed
         comment
    object
    
    object name=“myapplet”classid=“clsid:8AD9C840-044E-11D1-B3E9-00805F499D93”width=“1”height=“1”
    param name=“name”value=“myapplet”
    param name=“code”value=“com.example.MyApplet”
    
    param name=“codebase”值=”没有特定于浏览器的扩展是不可能的…但是我见过一些网站使用这个如何嵌入一个呢?我对java不太了解,如果我能得到一个脚本的话,我会在上面工作:没有特定于浏览器的扩展是不可能的…但是我见过一些网站使用这个如何嵌入一个呢?我对java不太了解,我会的如果我能得到一个剧本的话,我会继续写下去:多谢。但是,如果我把java文件转换成.exe文件,这个scipt可以工作吗?@kritya“。但是如果我把java文件转换成.exe文件,这个scipt可以工作吗。”不,谢天谢地。默认情况下,Java小程序是沙盒的,没有一个头脑正常的浏览器制造商会允许在网页中嵌入“.exe”文件。不,这次你弄错了。我的意思是,Java文件是exe格式的,用户已经启动了该文件。这可能吗?哇,非常感谢。但是,如果我把java文件转换成.exe文件,这个scipt可以工作吗?@kritya“。但是如果我把java文件转换成.exe文件,这个scipt可以工作吗。”不,谢天谢地。默认情况下,Java小程序是沙盒的,没有一个头脑正常的浏览器制造商会允许在网页中嵌入“.exe”文件。这一次你没有弄错。我的意思是说java文件是exe格式的,用户已经启动了该文件。这可能吗?我只需要在客户端系统上打开一个文件打开想读取客户端上的文件吗?我已使用上述方法在客户机上启动应用程序。因此,使用这种方法,您可以打开notepad.exe并为其提供要打开的文件的路径。您可能需要更多地说明您试图打开的内容。我只需要在客户端系统上打开一个文件。是否要读取客户端上的文件?我已使用上述方法在客户机上启动应用程序。因此,使用这种方法,您可以打开notepad.exe并为其提供要打开的文件的路径。您可能需要更多地说明您要打开的内容。