Wie kann ich beim Ausführen einer JAR-Datei einfach eine Erhöhung vornehmen?

8

Beim Versuch, eine Installer-Jar-Datei auszuführen, wird die Fehlermeldung angezeigt, dass der Schreibzugriff verweigert wird, um ein Verzeichnis im Ordner "Programme" zu erstellen.

Rechtsklick -> Als Administrator ausführen ist für Jar-Dateien nicht verfügbar (ich gehe davon aus, dass Java.exe sie verwendet - sie werden von der Shell selbst nicht als direkt ausführbar behandelt).

Was ist der schnellste und einfachste Weg, um eine .Jar-Datei mit Elevation auszuführen?

Ich evaluiere dieses Tool, um es unserem Entwicklerteam zu empfehlen, und sie werden es manuell auf ihren Boxen installieren. Ich würde eine Option bevorzugen, bei der sie nichts eingeben müssen.

Merlyn Morgan-Graham
quelle

Antworten:

6

Um anderen das Ausführen des JAR-Installationsprogramms zu erleichtern, ohne Änderungen an allen Computern vornehmen zu müssen, sollten Sie es wahrscheinlich mit einem Batch-Skript umschließen, mit dem die JAR-Datei angehoben und ausgeführt wird. Sie können dies problemlos mit den Elevation PowerToys von Microsoft tun . Sie enthalten ein nützliches Dienstprogramm, mit dem Sie als Administrator alles starten können, indem Sie ihm einfach den elevateBefehl voranstellen .

Nachdem Sie sie heruntergeladen haben, extrahieren Sie sie in einen Ordner und kopieren Sie das elevate.cmdund elevate.vbsin den Ordner mit der JAR-Datei. Schreiben Sie dann ein neues Batch-Skript mit einer .cmdErweiterung mit folgendem Inhalt:

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

Dadurch wird die JAR-Datei mit dem Standardhandler für solche Dateien auf ihrem System gestartet (mit dem startBefehl von cmd). %CD%verweist auf das aktuelle Arbeitsverzeichnis des Skripts und ist erforderlich, da die Befehlszeile mit erhöhten Rechten in gestartet wird c:\windows\system32.

Wenn Java aus irgendeinem Grund nicht ordnungsgemäß als Standardhandler für JAR-Dateien konfiguriert ist, schlägt dies jedoch fehl. Wenn Sie sich darauf verlassen können, dass Java auf allen Systemen am selben Ort ist, können Sie dies folgendermaßen tun:

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

Sobald Sie eine dieser Aktionen ausgeführt haben, führen Sie einfach die Batchdatei aus. Windows fordert Sie zur Administratorerhöhung auf und startet das Installationsprogramm.

Fügen Sie die Elevation-Skripte, Ihr Skript und die Installationsdateien in ein selbstextrahierendes Archiv ein, das das Skript startet, und Sie können es in einer schönen kleinen .exeDatei zusammenfassen. ( 7-Zip ist ein großartiges Open-Source-Tool zum Erstellen solcher Archive.)

Weitere Informationen zu den Elevation PowerToys finden Sie im verlinkten Artikel oder in der README-Datei, die dem Download beiliegt.

Patches
quelle
Super Antwort :) Danke! Ich werde warten, um es zu akzeptieren, also bekommt die Frage / Ihre Antwort vielleicht mehr Verkehr (ich denke, es funktioniert so?)
Merlyn Morgan-Graham
@Patches, wie geht das nicht mit Drittanbietern?
Pacerier
@Pacerier Auch in Windows 10 ist noch keine Methode zum Erhöhen von der Befehlszeile integriert.
Patches
2

Ich hatte gerade Gelegenheit dazu und stellte fest, dass der einfachste Weg, ohne Elevation PowerToys herunterladen und installieren zu müssen, darin bestand, cmd.exe als Administrator auszuführen und dann java.exe -jar 'installer.jar'über die Befehlszeile aufzurufen . Natürlich musste ich zuerst java.exe finden, aber das dauerte nicht lange ...

Richard Turner
quelle
2
Eigentlich müssen Sie nur anrufen installer.jar. Es findet automatisch das Standardprogramm "Öffnen mit", das bereits eingestellt wurde java.exe. (Wenn dies nicht der Fall wäre, würde ein Doppelklick auf das .jar es überhaupt nicht ausführen.)
Pacerier