Посмотрите на AccessController API: Java Access Controller
одна вещь наверняка, хотя, когда пользователь запускает программу Java , пользователь должен щелкнуть правой кнопкой мыши и выбрать «Запуск от имени администратора».
Другой вариант - это то, что вы можете прочитать в файле, внести изменения в память (файл можно прочитать как строку), а затем записать файл, чтобы заменить файл HOSTS. Что еще раз, вам определенно нужны привилегии администратора.
Быстрый поиск в Google также показал исходный код для пакета, который позволяет редактировать файл hosts, вы можете взглянуть на это. Тем не менее, он все же определенно нуждается в разрешениях администратора. Link here
Посмотрите на это previous SO question, это может дать вам несколько идей.
Основная проблема с написанием таких программ - это разрешения. Файл Hosts является важной частью каждой операционной системы, и логически для этого есть только слои безопасности, чтобы предотвратить случайную программу от изменения файла hosts, и, следовательно, все эти дополнительные препятствия.
Файл HOSTS на самом деле не является чем-то, с чем вам следует общаться. Права администратора должны быть изменены, потому что вы можете установить любой URL-адрес в любом месте по своему выбору (например, вирусы и фишинг-сайты хотели бы сделать). Единственное реальное решение - запустить приложение в качестве администратора. – Russ