0

みんな!

以下のような単純な機能を備えた署名付きアプレット (html で名前が付けられた結果) があります。

    public  void killApplet() 
    {   
        AccessController.doPrivileged(new PrivilegedAction<Object>(){
           //@Override
           public Object run() {
           // kill the JVM
           System.exit(0); // or any other line here
           String str = "any string";
           return null;
        }
    }); 
    }

Java スクリプト コードは次のようになります。

    function exec_java() {
        document.result.killApplet();
    }

ボタンをクリックしてJava関数を実行すると:

<button type="button" id="buttontest" onclick="exec_java()">test</button>

以下のように例外が表示されます。

java.security.AccessControlException: access denied

(java.io.FilePermission C:\Program Files\Java\jdk1.6.0_18\bin read)

以下のようにIEバージョンでWindows XPを使用しています:

IE7

ビジョン: 7.0.5730.13

専門家で、この例外をなくす方法の手がかりを教えてください。さらに、ここで奇妙なことは、以下のような単純な関数を問題なく呼び出すことができることです。

       public int getNumberOfLines(){
            return number_of_lines;
       }

どんな助けでも大歓迎です!PS: どうやら私は「新しい」ので、画像を投稿できません! 誰かが使用している実用的なサンプルを持っていますか?

    AccessController.doPrivileged(new PrivilegedAction<Object>()

ありがとう!

ウー・ビ

4

1 に答える 1

0
// kill the JVM
System.exit(0);

アプレットは、他のアプレットをホストする Web ページのゲストです。呼び出しSystem.exit(n)は、ゲストがゲストハウスを焼き払うようなものです。 そうしないでください! そのため、信頼できるアプレットであってもメソッドを呼び出すことはできません。

アプレットを終了するより良い方法は、次を呼び出すことです。

showDocument(thanksForUsingOurAppletURL);
于 2012-03-04T07:28:12.270 に答える