Запустите процесс выполнения Java с правами администратора в Vista
-
07-07-2019 - |
Вопрос
я хочу запустить установщик setup.exe, который устанавливает программное обеспечение на Vista с Java 1.6.
Пользователь не является администратором.Когда я пытаюсь запустить процесс, я получаю сообщение об ошибке:
CreateProcess error=740
что указывает на то, что у пользователя недостаточно прав для запуска процесса.
Могу ли я указать флаг или опцию, указывающую, что процесс должен выполняться с правами администратора?Сама Vista имеет эту функцию внутри панели инструментов меню.Могу ли я использовать эту функцию в Java.
Я вызываю следующий код
Runtime rt = Runtime.getRuntime();
Process process;
try {
String fileToExecute = new File(mFolder, mSetupFiles[0]).getCanonicalPath();
if (logger.isDebugEnabled()) {
logger.debug("Execute runtime process");
}
process = rt.exec(fileToExecute, null, mFolder);
process.getErrorStream().close();
process.getInputStream().close();
process.getOutputStream().close();
if (logger.isDebugEnabled()) {
logger.debug("Wait until process is finished");
}
process.waitFor();
} catch (IOException e) {
throw new StartException(e);
} catch (InterruptedException e) {
throw new StartException(e);
}
Решение 2
После 2 дней тестирования я нашел следующее решение.
Ошибка возникает при активации функции Vista UAC.UAC показывает диалоговое окно с вопросом каждый раз, когда процессу требуются права администратора.
Отображение этого диалогового окна вызывает проблему.
Вместо использования старого
process = rt.exec(fileToExecute, null, mFolder);
команда, сейчас я использую новую версию 1.5 ProcessBuilder команда
РЕДАКТИРОВАТЬ:
Чтобы избежать проблемы, вам необходимо открыть командное окно, которое запрашивает разрешение.И тогда вам нужно вызвать внешний процесс.
ProcessBuilder builder = new ProcessBuilder(new String[] { "cmd.exe", "/C", fileToExecute });
Здесь также описано Выполнить внешнюю программу
Другие советы
(я не пробовал этого), но кажется, что вы можете сделать это, используя " elevate " Программа здесь а> р>
также прочитайте это для обзора UAC