通过 JAVA 程序编辑主机时出现 "Access Denied" 错误

Getting "Access Denied" Error While Editing HOSTS Via JAVA program

通过 Java 程序编辑 "Hosts" 文件时出现 "Access Denied" 错误。 程序需要管理权限才能编辑主机文件。

那么有什么解决方案可以为 java 程序提供管理权限,以便它可以编辑主机文件。

** 注意** 我正在使用 Window 8.1 OS。 主机文件位置是: C:\Windows\System32\Drivers\etc\Hosts

查看 AccessController API:Java Access Controller

有一件事是肯定的,当用户运行 Java 程序时,用户必须右键单击并 select 'Run As Administrator'.

另一种选择是你可以读入文件,在内存中进行更改,(文件可以作为字符串读入),然后将文件写出到替换主机文件。同样,您肯定需要管理员权限。

快速 Google 搜索还显示了一个包的源代码,让您可以编辑主机文件,您可能想看一看。它仍然肯定需要管理员权限。 Link here

看看这个 previous SO question,它可能会给你一些想法。

编写此类程序的主要问题是权限。 Hosts 文件是每个操作系统的关键部分,从逻辑上讲,围绕它设置安全层以防止任何随机程序更改 hosts 文件,因此所有这些额外的障碍。