Como faço para criar um instalador do Windows para um arquivo java jar?
Quero criar um instalador do Windows para meu arquivo jar. Não quero ter que instalar o jre / jdk no computador de destino no qual desejo implantar.
Experimentei o jpackage (parte do Java 14) e não funcionou para mim. Tentei o seguinte comando:
jpackage --input target/ --name my_pkg --main-jar NtbnsProj.jar --main-class myJFrame --type exe --java-options '--enable-preview'
Ele gera um my_pkg-1.0.exe, mas não consigo executá-lo.
Neste ponto, estou disposto a experimentar até ferramentas de terceiros. Tentei install4j sem sucesso. Outro site que encontrei dizia para usar o install4j com o Inno Setup Compiler. Isso era mais complicado e também não funcionava. Achei que talvez o WiX Toolset pudesse funcionar.
Se alguém pudesse fornecer instruções passo a passo, especialmente se a solução envolver install4j, pois há muitas etapas diferentes nas quais você pode perder algo. Eu estava usando uma versão mais recente de install4j e ela não correspondia aos tutoriais e vídeos online. As seleções do menu mudaram significativamente. Talvez eu precise usar uma versão mais antiga do install4j.
Consulte meu artigo relacionado: Como faço para empacotar um arquivo java jar para ser executado em um Mac sem JRE instalado?
Respostas
Verifique novamente se seu aplicativo é executado diretamente e corrija os problemas antes de continuar:
java -cp NtbnsProj.jar myJFrame
Parece que jpackage
funcionou e gerou o seu instalador my_pkg-1.0.exe
. Ao executar a my_pkg-1.0.exe
verificação de que possui este arquivo, execute-o:
C:\Program Files\my_pkg\my_pkg.exe
Se isso falhar, execute novamente o jpackage com argumentos extras --win-console --app-version 1.1
, o que será gerado my_pkg-1.1.exe
com o console ativado. A reinstalação e a execução C:\Program Files\my_pkg\my_pkg.exe
podem relatar uma mensagem de erro útil indicando qual é o seu verdadeiro problema.
Se você não atualizar o a --app-version
cada vez, o Windows NÃO atualizará a versão 1.0 existente ou você deverá desinstalar antes de reaplicar uma reconstrução da mesma versão my_pkg-1.0.exe
. Ele simplesmente funciona e para sem avisar você.
Veja esta postagem sobre como configurar o app-ver automaticamente.
Eu tenho que trabalhar! @DuncG foi muito útil em responder minha pergunta. Eu tinha um monte de arquivos extras no diretório onde estava o arquivo jar, então acabei de criar um novo diretório e coloquei apenas NtbnsProj.jar nele. Em seguida, executei o seguinte comando:jpackage --name Test --input . --main-jar NtbnsProj.jar