我正在尝试制作一个在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);
}
}
}
答案 0 :(得分:1)
您需要使用提升的权限运行应用程序。尝试与一些管理员用户一起启动它。