Запустите командную строку (CMD) из Java как администратор - PullRequest
1 голос
/ 20 октября 2011

Я работаю над проектом Java. Этот проект требует прав администратора для выполнения какого-либо процесса в системе. Для этого есть ли способ дать права администратора при запуске проекта? Есть ли способ запустить командную строку с правами администратора из Java?

Ответы [ 2 ]

3 голосов
/ 20 октября 2011

Отказ от ответственности: я предполагаю, что вы спрашиваете это специально для платформы Windows

Есть два способа, которые я бы порекомендовал:

Используйте runas program

Это самый простой способ, и, поскольку вам действительно нужно окно консоли, запрос пароля не выглядит неловким.С другой стороны, пользователю может показаться подозрительным ввод пароля в окне консоли.

Использование API-функции CreateProcessWithLogonW

Для этого требуетсявам использовать библиотеку Win32 Java.(Я бы рекомендовал JNA ).Это немного больше работы, но это может привести к улучшению взаимодействия с пользователем из-за стандартного диалогового окна входа в Windows.

1 голос
/ 20 октября 2011

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

Вместо этого вы можете проверить, было ли ваше приложение запущено с правами администратора, и если нет, предложить пользователю сделать это (показывая небольшой практический совет о том, как архивировать это).

К сожалению, эти швы представляют большую проблему, поскольку не существует стандартизированного способа сделать это для всех платформ.Однако этот поток дает некоторые идеи: Определить, было ли приложение Java запущено от имени администратора Windows

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...