Получение ошибки «Отказано в доступе» при редактировании HOSTS через программу JAVA

Получение ошибки «Отказано в доступе» при редактировании файла «Hosts» через программу Java. Программе требуются АДМИНИСТРАТИВНЫЕ ПРИВИЛЕГИИ для редактирования файла hosts.

Итак, есть ли какое-либо решение, чтобы предоставить эту административную привилегию программе Java, чтобы она могла редактировать файл Hosts.

** Примечание ** Я использую ОС Windows 8.1. Расположение файла hosts: C:\Windows\System32\Drivers\etc\Hosts


person sachin verma    schedule 27.03.2015    source источник
comment
Файл HOSTS — это не то, с чем вам стоит возиться. Для изменения требуются права администратора, потому что вы можете указать любой URL-адрес для перехода в любое место по вашему выбору (что хотели бы делать вирусы и фишинговые сайты). Единственное реальное решение — запустить приложение от имени администратора.   -  person Russ    schedule 27.03.2015


Ответы (1)


Взгляните на API AccessController: Java Access Контроллер

одно можно сказать наверняка, когда пользователь запускает программу Java, пользователь должен щелкнуть правой кнопкой мыши и выбрать «Запуск от имени администратора».

Другой вариант заключается в том, что вы можете прочитать файл, внести изменения в память (файл можно прочитать как строку), а затем записать файл, чтобы заменить файл HOSTS. Что опять же, вам определенно нужны права администратора.

Быстрый поиск в Google также показал исходный код пакета, который позволяет редактировать файл hosts, возможно, вы захотите взглянуть на него. Тем не менее, ему все еще определенно нужны права администратора. Ссылка здесь

Взгляните на этот предыдущий вопрос SO, он может дать вам несколько идей .

Основной проблемой при написании программ такого рода являются разрешения. Файл Hosts является важной частью каждой операционной системы, и вполне логично иметь вокруг него уровни безопасности, чтобы предотвратить изменение файла hosts какой-либо случайной программой, отсюда и все эти дополнительные препятствия.

person matrixanomaly    schedule 27.03.2015