Java AccessDeniedException:C:\Windows\System32\drivers\etc\hosts
我正在尝试制作一个java程序,在web浏览器中阻止facebook页面。我试图以某种方式覆盖主机文件,但该文件已禁用覆盖。我试图将他复制到我的桌面上,然后添加一行内容来阻止页面,然后复制到etc文件夹并单击以复制(或覆盖)文件。但我不能用java来实现,我所做的只是在同一个文件夹中创建另一个文件并在其中添加行。但是我无法将新文件复制到旧文件,我不知道如何操作,这是我的代码,我正在等待解决方案:)Java AccessDeniedException:C:\Windows\System32\drivers\etc\hosts,java,file,Java,File,我正在尝试制作一个java程序,在web浏览器中阻止facebook页面。我试图以某种方式覆盖主机文件,但该文件已禁用覆盖。我试图将他复制到我的桌面上,然后添加一行内容来阻止页面,然后复制到etc文件夹并单击以复制(或覆盖)文件。但我不能用java来实现,我所做的只是在同一个文件夹中创建另一个文件并在其中添加行。但是我无法将新文件复制到旧文件,我不知道如何操作,这是我的代码,我正在等待解决方案:) 您需要以提升的权限运行应用程序。尝试使用某个管理员用户启动该文件。我希望您不是我公司的it人员:)
您需要以提升的权限运行应用程序。尝试使用某个管理员用户启动该文件。我希望您不是我公司的it人员:)您需要管理员权限来覆盖此文件。尝试以管理员身份启动应用程序,它应该可以工作。如果没有,请尝试删除该文件上的“只读”标志。或者,您可以允许当前用户修改该文件,但绝对不建议这样做。假设您能做到这一点,多次运行此程序不会创建重复的主机映射吗?正是因为这样的软件,Microsoft才添加了UAC,为什么其他操作系统会强迫您进入一个具有特殊机制的非特权帐户以进行复制“批准”privs的提升(如sudo)@Brandon-是的,我忘了添加删除临时文件的行。谁能帮我以管理员身份运行应用程序吗?非常感谢。我不知道如何运行。你能帮我吗?我必须从java项目中创建一个.exe应用程序并以管理员身份启动它吗?我不清楚如何运行。你如何运行它?以及IDE或命令prompt?无论哪种方式,您都必须以管理权限运行该程序。。
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);
}
}
}