Crie uma associação de manipulador de esquema de URI

2

Sou novo na criação de esquemas de URI personalizados e estou tentando iniciar um arquivo jar executável usando os esquemas de URI no meu sistema Windows 7.

Para executar este arquivo jar no prompt de comando, eu uso este comando:

java -jar demo.jar

EDITAR:

Para iniciar o mesmo usando o Custom URI Scheme, criei um arquivo .reg com a entrada abaixo ( copiado da postagem abaixo ):

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\DemoStart]
"URL Protocol"=""

[HKEY_CLASSES_ROOT\DemoStart\shell]

[HKEY_CLASSES_ROOT\DemoStart\shell\open]

[HKEY_CLASSES_ROOT\DemoStart\shell\open\command]
@="\"java.exe\" -jar \"C:\Users\John\Desktop\demo.jar\""

Isso não funciona pelo seguinte motivo:

O arquivo jar executável que estou tentando executar chamado demo.jar é um arquivo jar fornecido por terceiros e tem algumas dependências em arquivos de configuração XML que também estão localizados na mesma pasta que contém o arquivo jar. Eu não tenho privilégio para alterar qualquer código presente no arquivo jar.

Usando o prompt de comando, o comando "java.exe" -jar "demo.jar" funciona somente quando eu navego até a pasta que contém o demo.jar e o dependent config xml files . MAS se eu tentar executar o comando: "java.exe" -jar "C:\Users\John\Desktop\demo.jar" do local padrão da janela do prompt de comando (que no meu caso é C:\Users\John ), o comando não funciona, pois os arquivos xml de configuração dependentes não estão disponíveis.

Por isso preciso descobrir uma maneira de alterar o local padrão do prompt de comando também antes de executar o arquivo jar.

Por favor, sugira se é possível definir o local padrão do prompt de comando como C:\Users\John\Desktop quando eu acionar o URI personalizado (nesse caso, não há necessidade de navegar para um local diferente e o comando deve funcionar bem).

    
por user182944 02.10.2014 / 02:43

2 respostas

2

Seu arquivo .reg não parece correto. O formato é muito estranho. Deve ser algo mais parecido com isto:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\DemoStart]
"URL Protocol"=""

[HKEY_CLASSES_ROOT\DemoStart\shell]

[HKEY_CLASSES_ROOT\DemoStart\shell\open]

[HKEY_CLASSES_ROOT\DemoStart\shell\open\command]
@="\"java.exe\" -jar \"C:\Users\John\Desktop\demo.jar\""

Se isso ainda não funcionar, verifique se o java está no seu PATH. Se for, e ainda não funcionar, tente substituir "java" pelo caminho completo para o exe Java.

    
por 02.10.2014 / 03:34
1

Então, pelo que eu entendi, seu problema principal não é a associação real de arquivos, mas o diretório de trabalho. Infelizmente, o diretório de trabalho não pode ser influenciado quando iniciado a partir de uma associação de arquivos. Se um programa depende de arquivos ao lado de seu executável, ele seria quebrado por design se dependesse do diretório de trabalho.

Felizmente, a programação não é mais apenas para especialistas. ;)

O seguinte script de linha única AutoHotkey (que pode ser compilado em um arquivo .exe autônomo) inicia um programa (ou .jar de arquivo ou qualquer outro). O diretório de trabalho será configurado para o script .exe location.

Run, hello.jar, %A_ScriptDir%

Na verdade, eu não testei isso com um arquivo .jar , porque não tenho o JDK instalado no momento. Eu tentei com um script AutoHotkey não compilado embora. A documentação sobre o comando Run está disponível aqui .

    
por 02.10.2014 / 21:03