Как мне легко повысить уровень при запуске файла .jar?

8

При попытке запустить установочный файл Jar, я получаю сообщение об ошибке, в котором говорится, что доступ на запись запрещен для создания каталога в папке Program Files.

Щелчок правой кнопкой мыши -> Запуск от имени администратора недоступен в файлах Jar (я полагаю, потому что их использует Java.exe - сами они не рассматриваются как исполняемые оболочкой напрямую).

Какой самый быстрый и простой способ запустить файл .Jar с повышением прав?

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

Мерлин Морган-Грэм
источник

Ответы:

6

Чтобы другим было легко запускать установщик JAR без необходимости вносить изменения на всех своих компьютерах, вы, вероятно, захотите обернуть его пакетным скриптом, который поднимает и запускает файл JAR. Вы можете легко сделать это с помощью Elevation PowerToys от Microsoft . Они включают в себя полезную утилиту, которая позволяет запускать что-либо от имени администратора, просто добавляя к elevateкоманде префикс .

Как только вы загрузили их, извлеките их в папку и скопируйте elevate.cmdи elevate.vbsв папку с файлом JAR. Затем напишите новый пакетный скрипт с .cmdрасширением следующего содержания:

elevate cmd /c start "%CD%\installer.jar"

Это запустит файл JAR с обработчиком по умолчанию для таких файлов в их системе (используя startкоманду cmd). %CD%указывает на текущий рабочий каталог скрипта, и это необходимо, потому что командная строка с повышенными правами будет начинаться с c:\windows\system32.

Если по какой-то причине Java не настроена должным образом в качестве обработчика по умолчанию для файлов JAR, это может привести к сбою. Если вы можете рассчитывать на то, что Java находится в одном и том же месте на всех системах, вы можете сделать это следующим образом:

elevate "c:\Program Files\Java\jre\bin\java.exe" -jar "%CD%\installer.jar"

После того, как вы выполнили одно из этих действий, просто запустите командный файл, и Windows запросит повышение прав администратора и запустит установщик.

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

Для получения дополнительной информации о Elevation PowerToys см. Связанную статью или файл README, включенный в загрузку.

Патчи
источник
Офигенный ответ :) Спасибо! Я буду ждать, чтобы принять его, поэтому, возможно, вопрос / ваш ответ получит больше трафика (я думаю, что так будет работать?)
Мерлин Морган-Грэм,
@Patches, какой сторонний способ это сделать?
Pacerier
@Pacerier Даже в Windows 10 до сих пор нет встроенного метода повышения из командной строки.
Патчи
2

Я только что имел возможность сделать это и обнаружил, что самым простым способом, без необходимости загружать и устанавливать Elevation PowerToys, было запустить cmd.exe от имени администратора, а затем вызвать java.exe -jar 'installer.jar'из командной строки. Конечно, сначала мне нужно было найти java.exe, но это не заняло много времени ...

Ричард Тернер
источник
2
На самом деле вам нужно только позвонить installer.jar. Он автоматически найдет программу «Открыть с помощью», которая по умолчанию уже установлена java.exe. (Если бы не было, двойной щелчок на .jar не запустил бы его в первую очередь.)
Pacerier