我在JAVA中有一个代码/类/脚本,当有人点击我要处理的按钮/任何东西时,我想要执行它。 JavaScript中用于启动客户端系统上安装的类/代码/脚本/编译程序的代码应该是什么?
答案 0 :(得分:2)
我认为您必须在网页上部署applet,然后才能从javascript调用其方法。
所以,首先你需要appelet,即扩展Applet的类。如果你已经拥有一个,那么你就完成了。否则,您必须创建一个并公开已有的API。
接下来,您应该在网页上部署applet。使用标记<applet>
或<object>
执行此操作。它很简单,您可以在互联网上找到很多例子。
现在你必须能够从javascript调用这个applet。这也很简单。例如,你applet的名字(我的意思是html属性名称的值)是myapp,而applet有方法foo(),你可以从这样的javascript中调用它:myapp.foo()
以下是一个例子:
<applet name="myapp" archive="myjar.jar" code="com.company.MyApplet"/>
<script>
var result = myapp.foo();
</script>
答案 1 :(得分:2)
这取决于您在客户端尝试使用该程序。如果你想在客户端的机器上调用其他程序,你需要做一些事情。
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
关键是允许Javascript调用applet的mayscript和scriptable属性。
然后使用jarsigner使用您获得的代码签名证书对myapplet.jar进行签名。
请参阅Sun关于混合浏览器Java插件支持的本指南。
http://java.sun.com/j2se/1.5.0/docs/guide/plugin/developer_guide/using_tags.html#mixed