7

このアプレットこのアプレットを html ドキュメントで使用したいと思います。このサイトの例では、次を使用しています。

<applet code="de.wim.outldd.examples.DragDropTest_Applet"
    width="150" height="150" alt="Applet1" archive="soutldd.jar">
</applet>

やってみるとうまくいきません。私の HTML ドキュメントは、抽出されたディレクトリの途中にあります。アプレットを html で使用するにはどうすればよいですか、誰か試してみてください。

コンソールのエラー

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
4

3 に答える 3

4

アプレットは、特権を持つ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";
  ... 
}; 

編集:


上部の投稿で指定されたアプレット リンクが既にあることに気付きました。だから、私はあなたが始めるためのステップバイステップのガイドを提供しています.

どうぞ -

  1. $JRE_HOME/lib/security/java.policy ファイルをユーザー ホーム (Windows では c:\users\< ユーザー名 >) に.java.policyファイルとしてコピーします。前の「.」に注意してください。ファイル名に.

  2. .java.policy ファイルの末尾に次の行を追加します。

    grant codeBase " http://www.wilutions.com/outldd/- " {
    パーミッション java.security.AllPermission; };

  3. 次のようにアプレットビューアでアプレットを実行し、動作するかどうかを確認します。アプレットビューアhttp://www.wilutions.com/outldd/example.html

  4. 開始するためにアプレットにすべてのアクセス許可を指定していますが、すべてのアクセス許可を付与することは安全ではない可能性があることに注意してください。必要なアクセス許可のみを付与する必要があります。だから、私はそれを理解するためにあなたに任せます。
于 2012-09-01T14:03:46.020 に答える
1

ここにあるガイドに従いましたか?指定されたパスがページに関連して正しいdirectory/htmlですか?

また、アプレットのJARファイルsoutldd.jarパスは正しいですか?

于 2012-08-28T22:37:24.077 に答える
0

に移動しJava preferences->advanceてJavaコンソールをオンにすると、アプレットをHTMLでロードしたときに何が起こっているかを確認できます。

Windowsで

Java設定:コントロールパネル-> java

于 2012-08-28T22:44:23.967 に答える