开发者社区> 问答> 正文

Java applet : AccessControlException: ac?报错

各位帮帮忙!!!

我用Java applet做了一个工具,删除文件,当我把html文件打开的时候就报错了:

java.security.AccessControlException: access denied (java.io.FilePermission D:\img 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.checkRead(Unknown Source)
    at java.io.File.list(Unknown Source)
    at com.yu.DeleteImg.main(DeleteImg.java:53)
    at com.yu.DeleteImg.start(DeleteImg.java:32)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
异常:java.security.AccessControlException: access denied (java.io.FilePermission D:\img read)

我的代码
package com.yu;

import java.applet.Applet;
import java.awt.Graphics;
import java.io.File;

/**
 * 删除照片
 *
 *
 * @author HuangXinyu
 *
 * @version 1.0 2013-3-12 下午5:40:43
 */
public class DeleteImg extends Applet{
    
    String mystring="";
    
    public void paint(Graphics g) {
        g.drawString(mystring, 5, 30);
    }
    
    public void init() {
        mystring = mystring+"正在初始化。。。。。。";
        repaint();
    }
    
    public void start() {
        main();
        mystring = mystring+"正在执行程序。。。。。。";
        repaint();
    }
    
    public void stop() {

        mystring = mystring + "正在停止执行程序。。。。。。";
        repaint();
    }
    
    public void destroy() {

        mystring = mystring + "正在收回资源。。。。。。";
        repaint();
    }
    
    public void main() {
        //这个是你要查询的文件
        String path = "D:/img/";
        File file = new File(path);
        String fileName[];
        fileName = file.list();
        for (int i = 0; i < fileName.length; i++) {
            //显示所有的文件
            //System.out.println(fileName[i]);
            int zhaojing = fileName[i].indexOf("_1.jpg");
            if(zhaojing>0){
                
            }else{
                //显示要删除的文件
                System.out.println(fileName[i]);
                String img = fileName[i];
                deleteFile(path,img);
            }
        }
        
    }

    /**
     *
     * @param path
     *            (传入照片的名称如:149411_1.jpg,传入149411_就可以了)
     * @param number
     *            (传照片的数量,如:149411_1.jpg 149411_2.jpg
     *            149411_3.jpg,这是三张图片给我一个3就可以了)
     */
    public void deleteFile(String path, String img) {
        String deleteImg = path+img;
        delFileInfo(deleteImg);
    }

    /**
     * 删除文件信息,如果删除成功返回true,否则返回false
     *
     * @param delFile(给一个文件路径)
     * @return
     */
    public boolean delFileInfo(String delFile){
        boolean bea = false;
        java.io.File file = new java.io.File(delFile);
        bea=file.delete();
        System.out.println(bea);
        return bea;
    }
}

html:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>删除文件小程序</title>
  </head>
 
  <body>
   <applet code="com.yu.DeleteImg" width="300" height="100"></applet><br>
  </body>
</html>

求帮助

展开
收起
爱吃鱼的程序员 2020-06-22 21:19:24 526 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    applet没有权限读写你的本地文件的,除非。。。。反正很麻烦!
    谢谢!等有时间在好好的琢磨琢磨

    解决了吗?


    2020-06-22 21:19:40
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载