2015-03-27 1 views
0

Ошибка при доступе к доступу при редактировании файла «Хосты» через программу Java. Программа нуждается в ADMINISTRATIVE PRIVILEGE, чтобы изменить файл хостов.Ошибка «Отказано в доступе» при редактировании HOSTS через программу JAVA

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

** Примечание ** Я использую окно 8.1 ОС. Hosts File Location является: C: \ Windows \ System32 \ Drivers \ Etc \ Hosts

+0

Файл HOSTS на самом деле не является чем-то, с чем вам следует общаться. Права администратора должны быть изменены, потому что вы можете установить любой URL-адрес в любом месте по своему выбору (например, вирусы и фишинг-сайты хотели бы сделать). Единственное реальное решение - запустить приложение в качестве администратора. – Russ

ответ

0

Посмотрите на AccessController API: Java Access Controller

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

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

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

Посмотрите на это previous SO question, это может дать вам несколько идей.

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

Смежные вопросы