从html页面运行applet

时间:2011-03-29 11:50:01

标签: html applet

我制作了一个简单的Applet,只需点击按钮就可以调用一个ant target thorugh批处理文件。为此我正在使用

ExecTask exec = new ExecTask();
exec.setExecutable("run.bat");
Commandline.Argument arg = exec.createArg();
arg.setValue("-buildfile D:/cloudengine/Applet/build.xml");
exec.execute();

当我从eclipse运行它时,它可以正常工作。但我的要求是从html页面运行这个,所以我创建了一个带有applet标签的简单html

<APPLET ALIGN="CENTER" CODE="HtmlAntTest.class" WIDTH="800" HEIGHT="500"></APPLET>

但是在浏览器的java控制台中,我点击按钮

时会遇到异常
Exception in thread "AWT-EventQueue-2" java.lang.ExceptionInInitializerError
at org.apache.tools.ant.taskdefs.ExecTask.<init>(ExecTask.java:72)
.
.
.
Caused by: java.security.AccessControlException: access denied (java.util.PropertyPermission file.encoding read)

任何指针都会有很大的帮助。提前致谢

2 个答案:

答案 0 :(得分:0)

您需要为applet授予其他权限。这里都详细解释了: http://java.sun.com/developer/onlineTraining/Programming/JDCBook/appA.html

答案 1 :(得分:0)

正如das_weezul评论的那样,applet需要提升权限才能执行此操作。虽然更改策略文件是实现这一目标的一种方法,但它很容易出错且部署不切实际。

要在部署时获得受信任的applet,必须:

  1. 将类放入Jar文件中(有关详细信息,请参阅Packaging Programs in JAR Files。)
  2. 对Jar文件进行数字签名(详见Signing and Verifying JAR Files)。
  3. 在提示信任代码时,让最终用户确认代码。
  4. 在构建文件中设置代码签名需要一些时间,但一旦正确完成,就可以忘记了。