1

ユーザーがアプリケーションからログアウトするときに、ユーザー システムから一時ファイルを削除する必要があります。アプリケーションにはアプレットがあります。アプレット jar は署名されています。アプレットの destroy メソッドを呼び出してファイルを削除する戦略に従っています。document.myApplet.destroy() のよう にjavascriptでアプレットの destroy メソッドを呼び出しています。これを呼び出した後、ブラウザでエラーが発生します

キャッチされないエラー: java.security.AccessControlException: アクセスが拒否されました (java.io.FilePermission キャッチされないエラー: NPObject のメソッドの呼び出し中にエラーが発生しました。

4

2 に答える 2

1

わかりました私は自分で答えを得ました:このリンクhttp://docs.oracle.com/javase/7/docs/api/java/security/AccessController.htmlを参照した後、その読み取り、書き込み、または削除さえできることがわかりましたAccessController.doPrivileged メソッドでそれらをラップすることによって行われます。

AccessController.doPrivileged(new PrivilegedAction() {

                @Override
                public Object run() {
                    try {
                        deleteAppCacheDirectory();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                    return null;
                }

            });
于 2013-08-05T10:43:07.777 に答える
0

メソッドの呼び出しをdestroyJavaScript コードから削除する必要があります。ユーザーがページを離れると、ブラウザによって destroy メソッドが自動的に呼び出されます。これが発生する理由は、おそらくdestroyメソッドが公開されていないためです。ただし、これはブラウザがそれを呼び出すことを妨げません。

于 2013-08-02T09:43:37.147 に答える