Como elevo facilmente ao executar um arquivo .jar?

8

Ao tentar executar um arquivo Jar do instalador, estou recebendo um erro dizendo que o acesso de gravação foi negado para criar um diretório na pasta Arquivos de Programas.

Clique com o botão direito do mouse -> Executar como Administrador não está disponível nos arquivos Jar (presumo que seja o Java.exe que os consome - eles não são tratados como executáveis ​​diretamente pelo shell).

Qual é a maneira mais rápida e simples de executar um arquivo .Jar com elevação?

Estou avaliando esta ferramenta para recomendar à nossa equipe de desenvolvimento e ela a instalará manualmente em suas caixas. Prefiro uma opção que não exija que digitem nada.

Merlyn Morgan-Graham
fonte

Respostas:

6

Para facilitar a execução do instalador JAR por outras pessoas sem a necessidade de fazer alterações em todos os computadores, é provável que você deseje envolvê-lo com um script em lote que eleve e execute o arquivo JAR. Você pode fazer isso facilmente com os Elevation PowerToys da Microsoft . Eles incluem um utilitário útil que permite iniciar qualquer coisa como administrador, basta prefixá-lo com o elevatecomando

Depois de baixá-los, extraia-os para uma pasta e copie-os elevate.cmde elevate.vbspara a pasta com o arquivo JAR. Em seguida, escreva um novo script em lote com uma .cmdextensão com o seguinte conteúdo:

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

Isso iniciará o arquivo JAR com o manipulador padrão para esses arquivos em seu sistema (usando o startcomando de cmd). %CD%aponta para o diretório de trabalho atual do script e é necessário porque a linha de comando elevada será iniciada c:\windows\system32.

Se, por algum motivo, o Java não estiver configurado corretamente como o manipulador padrão para arquivos JAR, isso falharia. Se você puder contar com Java no mesmo local em todos os sistemas, poderá fazê-lo desta maneira:

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

Depois de fazer qualquer um desses, basta executar o arquivo em lotes e o Windows solicitará a elevação do administrador e iniciará o instalador.

Inclua os scripts de elevação, seu script e os arquivos do instalador em um arquivo de extração automática que inicia o script e você pode agrupá-lo em um pequeno e agradável .exearquivo. ( 7-Zip é uma ótima ferramenta de código-fonte aberto para criar esses arquivos.)

Para obter mais informações sobre os Elevation PowerToys, consulte o artigo vinculado ou o arquivo LEIA-ME incluído no download.

Patches
fonte
Resposta impressionante :) Obrigado! Eu vou esperar a aceitá-lo, então talvez a questão / sua resposta fica mais algum tráfego (acho que ele funciona dessa maneira?)
Merlyn Morgan-Graham
@ Patches, qual é a maneira não terceirizada de fazer isso?
Pacerier 8/09/15
@Pacerier Mesmo o Windows 10 ainda não possui um método interno de elevação a partir da linha de comando.
Patches em
2

Acabei de ter uma ocasião para fazer isso e descobri que a maneira mais fácil, sem precisar baixar e instalar o Elevation PowerToys, era executar o cmd.exe como administrador e depois ligar java.exe -jar 'installer.jar'pela linha de comando. Claro, eu tive que encontrar o java.exe primeiro, mas isso não demorou muito ...

Richard Turner
fonte
2
Na verdade, você só precisa ligar installer.jar. Ele localizará automaticamente o programa "abrir com" padrão que já foi definido como java.exe. (Se ele não tivesse, clicando duas vezes no .jar não iria executá-lo em primeiro lugar.)
Pacerier