Comment puis-je facilement élever lorsque j'exécute un fichier .jar?
8
Lorsque j'essaie d'exécuter un fichier Jar d'installation, je reçois une erreur indiquant que l'accès en écriture est refusé pour créer un répertoire sous le dossier Program Files.
Clic droit -> Exécuter en tant qu'administrateur n'est pas disponible sur les fichiers Jar (je suppose que c'est Java.exe qui les consomme - ils ne sont pas eux-mêmes traités comme directement exécutables par le shell).
Quelle est la manière la plus rapide et la plus simple d'exécuter un fichier .Jar avec élévation?
J'évalue cet outil à recommander à notre équipe de développement, et ils l'installeront manuellement sur leurs boîtes. Je préférerais une option qui ne les oblige pas à taper quoi que ce soit.
Pour permettre à d'autres d'exécuter facilement le programme d'installation JAR sans avoir à apporter de modifications à tous leurs ordinateurs, vous souhaiterez probablement l'envelopper avec un script de commandes qui élève et exécute le fichier JAR. Vous pouvez le faire facilement avec les Elevation PowerToys de Microsoft . Ils incluent un utilitaire utile qui vous permet de lancer n'importe quoi en tant qu'administrateur en le préfixant simplement avec la elevatecommande.
Une fois que vous les avez téléchargés, extrayez-les dans un dossier et copiez le elevate.cmdet elevate.vbsdans le dossier avec le fichier JAR. Ensuite, écrivez un nouveau script batch avec une .cmdextension avec le contenu suivant:
elevate cmd /c start "%CD%\installer.jar"
Cela lancera le fichier JAR avec le gestionnaire par défaut de ces fichiers sur leur système (en utilisant la startcommande de cmd). %CD%pointe vers le répertoire de travail actuel du script et est nécessaire car la ligne de commande élevée démarre dans c:\windows\system32.
Si, pour une raison quelconque, Java n'est pas correctement configuré comme gestionnaire par défaut pour les fichiers JAR, cela échouera cependant. Si vous pouvez compter sur Java au même endroit sur tous les systèmes, vous pouvez le faire de cette façon:
Une fois que vous avez effectué l'une de ces opérations, exécutez simplement le fichier de commandes et Windows vous demandera une élévation administrateur et lancera le programme d'installation.
Incluez les scripts d'élévation, votre script et les fichiers d'installation dans une archive auto-extractible qui lance le script et vous pouvez l'envelopper dans un joli petit .exefichier. ( 7-Zip est un excellent outil open source pour créer de telles archives.)
Pour plus d'informations sur les Elevation PowerToys, consultez l'article lié ou le fichier README inclus avec le téléchargement.
Réponse géniale :) Merci! Je vais attendre pour l'accepter alors peut-être que la question / votre réponse obtient un peu plus de trafic (je pense que cela fonctionne de cette façon?)
Merlyn Morgan-Graham
@Patches, quelle est la manière non tierce de procéder?
Pacerier
@Pacerier Même Windows 10 n'a toujours pas de méthode intégrée d'élévation à partir de la ligne de commande.
Patchs du
2
Je viens d'avoir l'occasion de le faire et j'ai constaté que le moyen le plus simple, sans avoir à télécharger et installer Elevation PowerToys, était d'exécuter cmd.exe en tant qu'administrateur, puis d'appeler à java.exe -jar 'installer.jar'partir de la ligne de commande. Bien sûr, je devais d'abord trouver java.exe, mais cela n'a pas pris longtemps ...
En fait, il vous suffit d'appeler installer.jar. Il localisera automatiquement le programme par défaut "ouvrir avec" qui a déjà été défini sur java.exe. (Si ce n'était pas le cas, double-cliquer sur le .jar ne l'exécuterait pas en premier lieu.)
Je viens d'avoir l'occasion de le faire et j'ai constaté que le moyen le plus simple, sans avoir à télécharger et installer Elevation PowerToys, était d'exécuter cmd.exe en tant qu'administrateur, puis d'appeler à
java.exe -jar 'installer.jar'
partir de la ligne de commande. Bien sûr, je devais d'abord trouver java.exe, mais cela n'a pas pris longtemps ...la source
installer.jar
. Il localisera automatiquement le programme par défaut "ouvrir avec" qui a déjà été défini surjava.exe
. (Si ce n'était pas le cas, double-cliquer sur le .jar ne l'exécuterait pas en premier lieu.)