Подтвердить что ты не робот

Ошибка CreateProcess = 740. Запрошенная операция требует повышения

У меня есть веб-апплет, который я регулярно обновляю, и, наконец, решил сделать обновление. Однако, когда я загружаю обновление в java, он отлично загружается. Однако, когда я пытаюсь распаковать + запустить обновление с помощью Runtime.getRuntime().exec(pathToFile);, я получаю CreateProcess error=740, The requested operation requires elevation

Как я могу это исправить, если программа представляет собой веб-апплет? Я не могу просто сказать им, чтобы они запускали свои браузеры в качестве администраторов. Как я могу это исправить?

4b9b3361

Ответ 1

У одного из моих друзей была такая же проблема около месяца назад (он разворачивал обновление через файл .exe), и я помню, что эта ссылка очень помогла ему: http://mark.koli.ch/2009/12/uac-prompt-from-java-createprocess-error740-the-requested-operation-requires-elevation.html

Я бы сделал это просто комментарием по вашему вопросу (похоже, не заслуживает прямого ответа/решения), но у меня пока нет комментариев, чтобы прокомментировать.:-P

Ответ 2

При использовании .exec(cmd) префикс вашей команды cmd /c, чтобы вы получили что-то вроде rt.exec("cmd /c <your command>"). Это запустит процесс и вызовет UAC при необходимости.

Ответ 3

Одна ручная работа над одним из наших инженеров нашла, если это не ваше приложение, запустите подсказку cmd, щелкните правой кнопкой мыши по окну и выберите пункт меню "Запуск от имени администратора". в моем случае запустите файл .jnlp!

Ответ 4

У меня была такая же проблема, разреши ее, запустив приложение java в качестве администратора, чтобы сделать его постоянным: щелкните правой кнопкой мыши на своем приложении, перейдите в свойство > Совместимость > установите флажок "Запустить эту программу как администратор"

(У меня в пакетном файле запущен Java.exe -jar....)

Ответ 5

Я столкнулся с такой проблемой, когда пытался запустить приложение с командой:

cmd /c start <exe_file>

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

rundll32 url.dll,FileProtocolHandler <exe_file>
Команда

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

В моем приложении я использовал функцию PrecessBuilder::start(). Эта функция возвращает экземпляр java.lang.Process, который будет активен (process.isAlive() == true), пока пользователь не будет обрабатывать приглашение UAC, поэтому лучше добавить некоторый цикл, чтобы дождаться момента, когда он будет считать, что это приложение запущено.

Ответ 6

Причина:

Когда вы пытаетесь запустить приложение, ваша IDE пытается запустить adb, но в результате получается 740 ошибок процесса или adb, потому что вашей среде IDE не разрешено запускать файл adb.exe из ваших инструментов платформы в вашей папке sdk.

Решение:

  • Убейте adb.exe, запустите eclipse.exe из диспетчера задач в Windows.
  • Закройте eclipse и отсоедините телефон, перезагрузите его и отключите отладку USB и включите его снова.
  • Щелкните правой кнопкой мыши значок eclipse и выберите "запустить как администратор"
  • Подключите его к вашему устройству и запустите приложение.

Золотой совет - всегда запускайте свое затмение, менеджер sdk, приглашение командной строки в качестве администратора, чтобы ваша система предоставляла полное разрешение на конкретное приложение.

проверено на окне 7 64bit

устройство Samsung 4.4 eclipse ide