我想在html文档中使用这个applet 这个applet.在本网站的示例中,他们使用:
<applet code="de.wim.outldd.examples.DragDropTest_Applet"
width="150" height="150" alt="Applet1" archive="soutldd.jar">
</applet>
Run Code Online (Sandbox Code Playgroud)
我尝试时它不起作用.我的HTML文档位于解压缩目录的中间.我怎样才能在html中使用applet,有人请试试这个.
控制台中的错误
java.lang.RuntimeException: java.lang.ExceptionInInitializerError
at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ExceptionInInitializerError
at de.wim.outldd.OutlookDD.init(OutlookDD.java:73)
at de.wim.outldd.examples.DragDropTest_Applet$1.run(DragDropTest_Applet.java:29)
at java.security.AccessController.doPrivileged(Native Method)
at de.wim.outldd.examples.DragDropTest_Applet.<init>(DragDropTest_Applet.java:26)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$12.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.security.AccessControlException: access denied (java.util.PropertyPermission java.io.tmpdir read)
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPropertyAccess(Unknown Source)
at java.lang.System.getProperty(Unknown Source)
at de.wim.outldd.OutlDDNativeLib.loadDllFromResource(OutlDDNativeLib.java:135)
at de.wim.outldd.OutlDDNativeLib.loadDll(OutlDDNativeLib.java:104)
at de.wim.outldd.OutlDDNativeLib.<clinit>(OutlDDNativeLib.java:62)
... 19 more
Exception: java.lang.RuntimeException: java.lang.ExceptionInInitializerError
Run Code Online (Sandbox Code Playgroud)
您的小程序正在尝试从优先的java.io.tmpdir系统属性中读取临时目录值。由于安全原因,小程序在权限受限的沙箱环境中运行。要修复此问题,请覆盖默认安全策略,以允许您的小程序通过在属性上设置属性权限 - java.util.PropertyPermission来读取该属性。要覆盖默认权限,请在用户主目录的 .java.policy 文件中定义策略。建议您编辑用户特定的策略文件,而不是 JRE 安全目录下的全局策略文件。参考下面的模板:
grant codeBase "<code base>" {
permission <type> "<target>", "<actions>";
permission <type> "<target>", "<actions>";
...
};
For eg.
grant codeBase "http://geosim.cs.vt.edu/geosim/-" {
permission java.util.PropertyPermission "java.io.tmpdir", "read";
...
};
Run Code Online (Sandbox Code Playgroud)
我注意到您已经在顶部的帖子中指定了小程序链接。因此,我将提供一步一步的指南来帮助您入门。
干得好 -
将 $JRE_HOME/lib/security/java.policy 文件作为.java.policy文件复制到您的用户主目录(在 Windows 上为 c:\users\< 用户名>)。请注意前面的“.” 在文件名中。
将以下行添加到 .java.policy 文件的末尾:
授予 codeBase " http://www.wilutions.com/outldd/- " {
权限 java.security.AllPermission; };
按如下方式在 appletviewer 中运行该 applet,看看它是否有效。小程序查看器http://www.wilutions.com/outldd/example.html