Olá, desenvolvi uma aplicação e preciso distribuí-la num instalador. Fiz um aquivo de auto extração do WinRAR, deu tudo certo, porém há duas questões cruciais:
- O Widows bloqueia a permissão do aplicativo .jar (uma vez que o mesmo é instalado em program files), preciso saber como desbloquear isso sem ser manualmente, pois os usuário não necessariamente saberão, a final o aplicativo é autoinstalável.
- Os atalhos do WinRAR não possuem a opção “Iniciar em” o que coloca o patch do aplicativo na pasta do atalho, logo o programa busca a base de dados e etc. “em volta” do atalho.
Se alguém souber a solução eu agradeço.
se você rodar o instalador como administrador não resolve?
Então. No W7, antes da extração ele pede permissão de administrador, isso possibilita o instalador extrair os arquivos, mas ao chamar o .jar, o mesmo não tem permissão para gravar na pasta.
Em vez de usar um arquivo de auto-extração, use um instalador de verdade. Por exemplo, use o InnoSetup (baixe também o istool).
Só um instalador pode lidar com esses problemas de permissão, porque ele já pede a autorização de administrador automaticamente.
Além disso, você não deve supor que é possível um programa gravar arquivos no diretório onde foi instalado. Isso não funciona mais a partir do Windows Vista.
Como trabalhar com banco de dados embarcado então?
Se você realmente tiver de gravar arquivos no diretório onde foi instalado, talvez isso seja possível chamando-se algum comando dentro do instalador para alterar a permissão. O Java não consegue alterar sozinho essa permissão.
Tenho um trabalho com inno e istool, mas acho que não resolve usando o jar diretamente. Ele pode fazer o seguinte:
Encapsular o jar em um executável com launch4j ou jsmooth e criar o instalador com inno e istool.
o meu instalador funciona assim e não gera problemas de permissão.
Show de bola!
O Inno, que o entanglement indicou tem um script para permissões. No meu caso que é escrita em diretório alinha fica assim:
[Dir]
Name: “{app}”; Permissions: users-modify
funcionou blz.
Obrigado pela luz galera.