你的安全策略文件是怎么编辑的,好象不对
建议看一下<JAVA2核心技术>卷2,里面讲了

解决方案 »

  1.   

    這是我的.java.policy裡控制這個Applet的一段:
    grant codeBase "file:/c:/class/*" {
      permission java.io.FilePermission "<<ALL FILES>>", "read, read, write, delete, execute";
      permission java.security.AllPermission;
    };
    --------------------------------------------------
    這是我程式中下載文件的一段:
    private void btn5_actionPerformed(ActionEvent e){
    try{
    URL url = new URL(tf.getText().trim());
    String outfilename = url.toString();
    outfilename = outfilename.substring(outfilename.lastIndexOf("/")+1);
    String uri = "c:\\class\\files\\" + outfilename;
    //byte[] fileContents = ta.getText().getBytes();
    InputStream instream = url.openStream();
    StringBuffer sb = new StringBuffer();
    int tb = instream.read();
    while(tb != -1){
    sb.append((char)tb);
    tb = instream.read();
    }
    String sbstr = sb.toString();
    char[] sbchar = sbstr.toCharArray();
    byte[] fileContents=new byte[sbchar.length];
    for(int i=0;i<sbchar.length;i++)
    fileContents[i] = (byte)sbchar[i];

    //int result = instream.read(fileContents);
    ta.setText(String.valueOf(instream.available()) + "\n" + sbchar.length + "\n" + fileContents.length);
    FileOutputStream fos = new FileOutputStream(uri);
    fos.write(fileContents);
    fos.close();
    instream.close();
    }catch(Exception ex){
    ta.setText("Write contents to File Error:\n" + ex);
    }
    }
    -----------------------------------------------------------------------
    我相信我的c:\documents and settings\Administrator\.java.policy是正確的,若不然,在我沒有正確設置它之前,即便是我使用appletviewer也一樣不能下載文件,總提示java.io.filepermission錯誤。現在是使用appletviewer指令執行或使用雙擊該html文件都能正常下載,而使用http://.../fileApplet.html時,也能從網絡取得資料,隻是下載的時候才出的錯。這我是很不明白的。所以上來請教!
    謝謝
      

  2.   

    哦,謝謝
    成功了。
    我剛忽然想起我是否該改為
    grant codeBase "http://172.18.17.168:8080/examples/applet/*" {
      permission java.io.FilePermission "<<ALL FILES>>", "read, read, write, delete, execute";
      permission java.security.AllPermission;
    };
    試試呢?
    試了一下,果然成功了!謝謝
      

  3.   

    grant codeBase "file:/c:/class/*" 把"file:/c:/class/*" 改成WEB服务器的绝对路径试试