AccessDeniedException:C:\ Windows \ System32 \ drivers \ etc \ hosts

时间:2014-04-11 17:07:43

标签: java file

我正在尝试制作一个在Web浏览器中阻止Facebook页面的java程序。我试图以某种方式覆盖hosts文件,但该文件被禁用以覆盖。我试图将他复制到我的桌面,然后附加一行阻止页面,然后复制到etc文件夹并单击以复制(或覆盖)该文件。但我不能在java中做到这一点,我所做的就是在同一个文件夹中创建另一个文件并为其添加行。但后来我无法将新文件复制到旧版本,我不知道该怎么做,这是我的代码,我正在等待解决方案:)

public class Sandbox {

    private final static File zdroj = new File("C:\\Windows\\System32\\drivers\\etc\\hosts");
    private final static File ciel = new File("C:\\Windows\\System32\\drivers\\etc\\hostsTemp");

    public static void main(String[] args) {

    try {
        Files.copy(zdroj.toPath(), ciel.toPath());
        PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(ciel, true)));
        writer.append("\n\n127.0.0.1 facebook.com www.facebook.com http://www.facebook.com/ http://facebook.com");
        writer.close();
        Files.delete(zdroj.toPath());
        Files.copy(ciel.toPath(), zdroj.toPath());
    } catch (IOException ex) {
        Logger.getLogger(Sandbox.class.getName()).log(Level.SEVERE, null, ex);
    }

    }

}

1 个答案:

答案 0 :(得分:1)

您需要使用提升的权限运行应用程序。尝试与一些管理员用户一起启动它。