Permissão para aplicativo Java [RESOLVIDO]

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:

  1. 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.
  2. 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.

opa, então blz.