通过 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 文件,因此所有这些额外的障碍。
通过 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 文件,因此所有这些额外的障碍。