TUTORIAL PARA GERAR ARQUIVO .EXE DE INSTALAÇÃO DE UMA APLICAÇÃO JAVA
Neste tutorial iremos mostrar como gerar um arquivo executável de sua aplicação java desktop, como também a geração do setup de instalação do software em uma máquina usuário. Dividiremos o estudo em duas partes distintss, a saber:
1. Gerar o executável de sua aplicação via arquivo JAR
2. Gerar o arquivo de SETUP (instalação) de sua aplicação (com BD e demais dependências)
A primeira opção irá gerar o executável de sua aplicação, pois uma aplicação Java somente cria um arquivo .JAR que normalmente não se comporta como um arquivo de execução da aplicação. Logo, precisamos
“converter” esse JAR em EXE.
A segunda opção irá criar o SETUP de instalação, o qual fará a devida instalação da aplicação em uma máquina de usuário, possibilitando incorporar no seu executável, por exemplo, a instalação do banco de dados junto, outras dependências importantes, ou seja, instalará a própria aplicação (que nesse tutorial será o MySql) e carregará o script do banco de dados.
Uma opção viável para este segundo modo é instalar o banco de dados + script separados e gerar o executável somente da aplicação Java, o que de fato será mais fácil na geração desse executável. Porém, essa opção exigirá que uma pessoa especializada (normalmente o próprio desenvolvedor da aplicação java) para realizar a instalação da aplicação total. O ideal sempre é gerarmos executáveis de SETUP “auto- instaláveis”, ou seja, usando o famoso modo de instalação NEXT > NEXT > NEXT...
Para este tutorial iremos utilizar as seguintes ferramentas:
1. GERAR ARQUIVO EXECUTÁVEL DA APLICAÇÃO JAVA
A geração de um arquivo executável na verdade se chama “Encapsulamento Nativo” e foi apresentado pela primeira vez como parte do JavaFX 2.2 SDK, permitindo que você encapsule uma aplicação (gerar executável) como um encapsulamento nativo e, em seguida, instale e execute a aplicação sem nenhuma dependência em um sistema JRE ou Java SDK. Em seguida, ele se tornará utilizável também para projetos Java SE.
O encapsulamento nativo não altera o modelo de implantação de sua aplicação: ele usa a aplicação como está, encapsula com runtime de Java e produz um instalador que é comum para o sistema operacional que você está usando. O ponto principal é criar uma única ação não importando o runtime de Java que os
Sistemas de Informação/Engenharia de Software Desenvolvimento de Aplicações Java
Prof. Giuliano Prado M. Giglio
usuários têm na máquina-alvo. Você pode usar um instalador e executá-lo em uma máquina na qual não há rastreamento de Java. Isso instalará a aplicação e os bits de runtime Java necessários. O tamanho desses instaladores é bem grande porque mesmo uma aplicação "Hello world" transportará uma parte grande de artefatos de runtime Java.
Neste tutorial, você criará um instalador EXE de uma aplicação Java SE para o sistema operacional Windows, com base nas aplicações de amostra encapsuladas com o IDE.
Observação:
Os instaladores EXE ou MSI que você obtém são específicos da plataforma; eles só serão executados em um sistema compatível com a plataforma Java de destino cujos pacotes EXE/MSI instaláveis foram criados. (Por exemplo, se um instalador EXE ou MSI foi criado em uma máquina com um JDK de 64 bits instalado, ele deverá ser executado em uma máquina com Windows de 64 bits instalado).
No Windows, ambas as aplicações são instaladas no diretório C:\Users\<username>\AppData\Local\ e estão disponíveis no menu Iniciar.
INSTALANDO AS FERRAMENTAS DE SUPORTE
Para usar o suporte do IDE para encapsulamento nativo, as seguintes ferramentas adicionais precisam ser instaladas:
O Inno Setup 5.5 (ou uma versão mais recente) para produzir instaladores EXE no Windows é obrigatório.
O WiX 3.7 (ou uma versão mais recente) para produzir instaladores MSI no Windows é obrigatório.
Nesse tutorial somente iremos explicar a geração de um arquivo .EXE Para instalar o Inno Setup:
1. Faça Download do ispack-5.5.9.exe (versão mais atual no momento deste tutorial) na página (http://www.jrsoftware.org/isdl.php)
2. Clique duas vezes no arquivo para iniciar o instalador.
3. Aceite o contrato de licença do Inno Setup e clique em Próximo.
4. Siga as instruções do assistente de instalação para instalar o Inno Setup.
Para adicionar o Inno Setup e/ou WiX à variável Path do sistema:
1. No Windows, selecione Iniciar > Computador > Propriedades do Sistema > Configurações avançadas do sistema.
2. Selecione a guia Avançado e clique no botão Variáveis de Ambiente.
3. No painel Variáveis do Sistema, clique duas vezes na variável Path.
4. Na caixa de diálogo Editar Variável do Sistema, adicione um ponto-e-vírgula seguido de um novo caminho ao campo Valor da variável (por exemplo, C:\Arquivos de Programa (x86)\Inno Setup 5 ou C:\Arquivos de Programa (x86)\WiX Toolset v3.6\bin).
5. Clique em OK para fechar todas as caixas de diálogo abertas.
Observações:
Para verificar se a ferramenta instalada está no Path, abra a janela Prompt de Comando e digite iscc.exe para Inno Setup ou candle.exe para WiX. (Se o Prompt de Comando for fechado
instantaneamente, tente especificar cmd.exe /c cmd.exe /k iscc.exe ou cmd.exe /c cmd.exe /k candle.exe respectivamente.)
A figura a seguir mostra o que o Prompt de Comando deve exibir, caso o Inno Setup seja adicionado à variável Path do sistema.
Certifique-se de que o IDE tenha sido reiniciado após as ferramentas serem adicionadas à variável Path do sistema.
PASSOS PARA GERAÇÃO DO EXECUTÁVEL.
Importante seu projeto ter gerado o arquivo .JAR de sua aplicação, pois a geração do executável será
“converter” este arquivo em um .EXE, com as dependências necessárias. Todos os drivers, importações já estarão dentro do .JAR
Para isso, você precisa CONSTRUIR seu projeto quando o mesmo já estiver pronto.
Selecione Executar > Construir Projeto Principal. ( Alternativamente, clique com o botão direito do mouse no nó do projeto na janela Projetos e escolha Construir.)
Ao construir o projeto:
As pastas build e dist são adicionadas em sua pasta do projeto (de agora em diante chamada pasta PROJECT_HOME).
Todos os códigos-fonte são compilados em arquivos .class, que são colocados na pasta PROJECT_HOME/build.
Um arquivo JAR contendo o projeto é criado dentro da pasta PROJECT_HOME/dist.
Se alguma biblioteca foi especificada para o projeto (além do JDK), uma pasta lib é criada na pasta dist. As bibliotecas são copiadas para dist/lib.
O arquivo de manifesto no JAR é atualizado para incluir entradas que designam a classe principal e quaisquer bibliotecas que estejam no classpath do projeto.
Observação: é possível exibir o conteúdo do manifesto na janela Arquivos do IDE. Depois de construir seu projeto, alterne para a janela Arquivos e navegue até dist/seuProjeto.jar. Expanda o nó do arquivo JAR, expanda a pasta META-INF e clique duas vezes em MANIFEST.MF para exibir o manifesto no Editor de Código-fonte.
Main-Class: suaClassePrincipal
ATIVANDO ENCAPSULAMENTO NATIVO NO IDE (GERAÇÃO DO EXECUTÁVEL)
As ações do encapsulamento nativo são desativadas no IDE, por default.
Clique com o botão direito do mouse no seu projeto na janela “Projetos”, para verificar as ações disponíveis para o projeto Java SE criado no IDE: não há ações relacionadas ao pacote no menu de contexto do projeto.
Para ativar as ações de encapsulamento nativo do projeto:
1. Clique com o botão direito do mouse no nó do projeto na janela Projetos e selecione as Propriedades no menu de contexto.
2. Na caixa de diálogo Propriedades do Projeto, escolha a categoria Implantação e selecione Ativar Ações de Encapsulamento Nativo na opção Menu do Projeto.
3. Clique em OK.
Um comando Encapsular como é adicionado ao menu de contexto do projeto.
CONSTRUINDO UMA APLICAÇÃO
É hora de limpar e construir sua aplicação para implantação.
Para limpar e construir seu projeto:
Escolha Executar > Limpar e Construir Projeto do menu principal.
O IDE exibe os resultados na janela de Saída.
Uma pasta dist que contém um arquivo jar é criada na pasta do projeto.
CRIANDO UM INSTALADOR EXE
A aplicação agora pode ser encapsulada em um instalador para Windows.
Para construir um instalador EXE:
Clique com o botão direito do mouse no seu projeto e escolha Encapsular como > Instalador EXE do menu de contexto.
Observação: o IDE só criará um instalador EXE se o Inno Setup for instalado e adicionado à variável Path do sistema.
O IDE exibe o andamento e o resultado do processo de encapsulamento na janela de Saída.
Observação: o IDE primeiro registra o progresso e, em seguida, durante um período verifica como se nada estivesse acontecendo - é exatamente neste momento em que o Inno Setup está trabalhando em segundo plano. Demora um pouco para o encapsulamento ser concluído.
Quando o instalador EXE estiver pronto, ele será colocado no diretório SeuProjeto/dist/bundles/.
Este executável, portanto, pode ser levado para outra máquina e feita a instalação da aplicação.
Verificando as Aplicações Instaláveis
Quando o instalador de seuProjeto.exe for concluído, você precisará verificar em qual diretório a aplicação foi instalada.
Para verificar os instaladores:
1. Procure o arquivo do instalador (seuProjeto.exe) em seu disco rígido.
2. Clique duas vezes para executar o instalador.
A aplicação deve ser instalada no diretório C:\Users\<username>\AppData\Local\ e deve estar disponível no menu Iniciar.
2. GERAR O SETUP DA APLICAÇÃO + BANCO DE DADOS (MYSQL + SCRIPT)
Este modo de criação de um executável de SETUP e indicado para todas as situações em que se deseja criar um arquivo de instalação EXE completo. No modo anterior, usamos a propriedade nativa de nossa IDE (no caso o NetBeans) para gerar o executável de instalação. O que o InnoSetup basicamente realiza é criar um arquivo EXE do arquivo JAR automaticamente criado pelo build da aplicação. Usando a opção do Netbeans nativo, a própria IDE tratou de converter o .JAR para EXE. Porém, muitas vezes precisamos fazer com que outros módulos periféricos sejam instalados com nossa aplicação, tais como bibliotecas (JRE, por exemplo), arquivos externos e inclusive o banco de dados.
Para isso, precisamos de um programa que faça essa integração de módulos e dependências da aplicação e “empacote” tudo em um executável EXE. Usaremos o programa Launch4J para isso.
Desta forma, após o trabalho de geração do executável de nossa aplicação pelo
Lauch4J
e todas as dependências do software necessárias para seu correto funcionamento, usaremos o Inno Setup para criação do instalador (SETUP) completo de nossa aplicação.1. Instalação do Launch4J:
1. Faça o download do programa em:
https://sourceforge.net/projects/launch4j/files/launch4j-3/3.12/
2. Faça a instalação default (NEXT > NEXT...)
Após a instalação, certifique-se que sua aplicação foi “Construída” (opção de LIMPAR E CONSTRUIR), pois desta forma foi criado o arquivo .JAR de sua aplicação (conforme explicado no tópico anterior) e que o Inno Setup esteja instalado.
2. Criando o arquivo executável:
Neste tutorial irei usar um projeto Java pelo Netbeans chamado “EstudoCasosProdutos”.
1. Crie uma pasta para criação de seu executável (pode ser em sua Área de Trabalho). Irei chamar esta pasta de ECProdutos-setup e dentro dela crie uma pasta “bin”
2. Vá na pasta “dist” de seu projeto e copie o .JAR e a pasta “lib” para a pasta bin anterior.
3. Execute o programa Launch4j
Output File: clique no botão ao lado do campo e selecione a pasta ECProdutos- setup. No campo “Nome do arquivo” vamos chama-lo de “ECProdutos.exe”
Jar: selecione o arquivo .JAR de sua aplicação na pasta ECProdutos-setup
Icon: selecione o arquivo de ícone de identificação (tem que ser .ico) de sua aplicação, que ficará visível na área de trabalho.
3. Clique na aba “CLASSPATH”
Selecione a opção “Custom classpath” e no campo “Main class”, clique no botão ao lado e selecione o arquivo .JAR de sua aplicação para carregar todas as bibliotecas de seu projeto que já estão embutidos no .JAR.
Devemos alterar o caminho de cada biblioteca, pois agora elas estarão dentro da pasta “bin”.
Logo, coloque bin/ antes de cada lib/ de todas as bibliotecas.
4. Clique na aba “JRE”
Antes de fazermos as configurações, vamos incorporar a pasta JRE do Java para nosso projeto.
Copie esta pasta de seu JDK e cole na pasta bin de seu diretório onde está gerando o executável.
No campo “Min JRE version” vamos colocar 1.0.0
No campo “Bundled JRE Path”: vamos colocar o caminho da pasta JRE copiada.
5. Clique na aba Splash
Aqui você pode indicar a tela inicial de sua aplicação, que inicia a execução, ou tela de apresentação (o que chamamos de Splash).
No campo “Splash file”: selecione a imagem de apresentação de seu Splash.
6. Vamos testar a geração do executável até agora.
Clique no botão “Build Wrapper” e observe a área de Log para verificar o progresso de geração.
Aparecerá uma janela pedindo para informar o nome do arquivo XML de configuração dessa geração. Vamos colocar ecprodutos.xml
Na janela de Log, verifique se mostrou a mensagem de sucesso da criação do executável de instalação.
Verifique na sua pasta bin o executável gerado para sua aplicação.
Você pode clicar no botão “Test Wrapper” que fará um teste de execução de sua aplicação.
7. GERAÇÃO DO ARQUIVO DE SETUP
Iremos fazer a geração do instalador com o Inno Setup. É através dele que juntaremos todas as partes da aplicação: Executável do sistema gerado + Banco de Dados + outros necessários, que nada mais é do que o próprio SETUP da aplicação.
Ao abri-lo, clique no menu File > New. Na primeira janela que aparecerá, clique em NEXT.
Preencha com o nome da sua aplicação e versão, limpando os demais campos.
Na próxima janela, iremos especificar qual será a pasta base da aplicação quando ela for instalar na máquina hospedeira. Deixe na opção “Program Files folder” para manter a organização da pasta com os arquivos da aplicação.
Na próxima janela indicaremos onde está o executável de nossa aplicação.
Vamos também adicionar as pastas de nosso projeto, que são a pasta bin e a pasta raiz
ECProdutos-setup
Na janela seguinte se configura as opções de Atalho, tais como permitir a criação de ícone na área de trabalho ou no menu iniciar, dentre outros. Pode deixar com o está.
A próxima janela serve para as informações de Licença e outras documentações adicionais.
Clique em NEXT
A janela seguinte permite indicar quais linguagens serão incluídas. Marque “Brazilian Portuguese” e deixe “English” selecionada também.
Na próxima janela vamos definir um nome para o arquivo de setup, como indicado na imagem abaixo. Chamaremos de “setup-ecprodutos” no campo “Compiler output base filename”:
Basta seguir as próximas janelas até a última clicando em Finish.
Nesta janela, clique em Não para não gerar outro script.
O script de geração do SETUP foi gerado e é através dele que incluiremos o MySql e o banco de dados.
INCLUINDO O BANCO DE DADOS MYSQL
Temos 2 opções para realizar a inclusão do banco de dados do nosso projeto:1. O MySQL ou XAMPP está instalado na máquina hospedeira (que será instalada a aplicação)
2. Executando o setup da aplicação e do MySQL em conjunto.
3. Instalando a aplicação com o MySQL como instância (RECOMENDADO)
Em ambos os casos iremos incluir algumas linhas no script gerado pelo Inno Setup.
No primeiro caso, basta incluirmos as linhas de criação e carregamento do banco de dados da aplicação, pelo arquivo do script .sql, acessando o MySQL (já instalado no computador) para realizar tais operações.
No segundo caso, faremos a mesma coisa que o anterior, porém, incluiremos uma linha para instalação do MySQL antes (ou XAMPP) para acesso ao SGBD. O instalador do MySQL deverá estar no diretório de nossa aplicação, empacotado no SETUP.
Importante salientar que, neste caso, haverá uma “sub-instalação” de um aplicativo junto com a aplicação, que no caso é o MySQL. Sendo assim, o usuário que estiver fazendo a instalação, deverá ter o conhecimento da instalação deste, ou que haja um manual para o usuário instalar passo a passo a aplicação, incluindo esses passos do MySQL. O link a seguir possui esses passos:
https://dicasdeprogramacao.com.br/como-instalar-o-mysql-no-windows/
OBS.: Neste tutorial se especifica quais ferramentas do MySQL deseja-se instalar que, para uma aplicação Java, basta somente o MySQL Server.
No terceiro caso, que RECOMENDAMOS, iremos incluir uma instância do MySQL dentro da aplicação e instalaremos o MySQL como serviço do Windows, criando os usuários e carregando a base de dados, via linha de comando, sem a intervenção do usuário, que só terá o trabalho de realizar a famosa instalação “NEXT > NEXT > NEXT”
Vamos criar uma pasta chamada “complementos” dentro de sua pasta de criação do setup
ECProdutos-setup.
Dentro dela coloque seu script do banco de dado .sql e o arquivo de instalação do MySQL.MODO 1: Com MySQL ou XAMPP instalados
1. Nesse caso, você não precisa colocar o instalador do MySQL na pasta “complementos”, somente o .sql
2. Referenciando o banco de dados no script criado.
Devemos incluir no script gerado pelo Inno Setup de nosso instalador uma linha de comando que incorpora o script do banco de dados no setup. Logo, copie a linha abaixo e coloque na opção do script [FILES]:
Source: C:\Users\UFES\Desktop\ECProdutos-setup\complementos\empresa.sql*;
DestDir: {tmp}; Flags : ignoreversion deleteafterinstall Ficará assim:
Obs.: observe que o endereço está referenciando para a pasta criada na área de trabalho (c:\Users\UFES\Desktop\ECProdutos-setup). Caso tenha colocado em outra pasta, modifique sua linha.
Apesar de incluído o arquivo .sql no diretório complementos de onde será instalado o programa, este arquivo será copiado para uma pasta temporária do sistema operacional.
Isso está indicado em: DestDir: {tmp}
3. Vamos incluir as linhas no script para criação do banco de dados via MySQL. Coloque as linhas abaixo, na opção [Run] do seu script, acima da linha que já existe que é do executável de sua aplicação.
;criação do banco de dados
Filename: "C:\Program Files\MySQL\MySQL Server 5.7\bin\mysql.exe";
Parameters: "-u root -h localhost -p1234 -e ""create database empresa CHARACTER SET 'utf8' COLLATE utf8_spanish_ci;"; WorkingDir: {tmp};
StatusMsg: Criando a base de dados; Flags: runhidden
;carregamos o script com os dados
Filename: "C:\Program Files\MySQL\MySQL Server 5.7\bin\mysql.exe";
Parameters: "-u root -h localhost -p1234 -e ""use empresa; source
empresa.sql;"; WorkingDir: {tmp}; StatusMsg: Importando os dados; Flags:
runhidden
Ficarão assim:
Observe que as linhas estão acessando o diretório base onde o MySQL está instalado, caso tenha seguido a instalação default dele, a pasta estará em Arquivos de Programa (Program Files) > MySQL > MySQL <versão> > bin
Na primeira linha: carrega-se o programa mysql e passa-se os parâmetros para criar o banco de dados. Repare que estamos realizando um acesso via Linha de Comando no script, onde chamamos o programa e seus parâmetros corretos. Estão entre aspas, pois há espaços em branco no meio das sentenças.
Na segunda linha: mesmo processo, porém com o carregamento do script .sql.
Observe que na linha se refere onde está o arquivo .sql do script do banco de dados: WorkingDir:
{tmp}
StatusMsg: é o texto que aparece na tela de instalação para informar ao usuário o que está ocorrendo naquela etapa.
Flags: modo pela qual os programas serão executados, se em segundo plano (runhidden) ou outro modo desejado.
OBS: caso o MySQL a ser referenciado é o do XAMPP, basta trocar o caminho para c:\xampp\mysql\bin
MODO 2: Executando o setup da aplicação e do MySQL em conjunto.
>> Neste modo, você precisará incluir na pasta “complementos” o instalador do MySQL.
Neste caso, iremos incluir a linha de instalação do MySQL ou do XAMPP a sua escolha, lembrando de colocar as linhas acima correspondentes ao tipo de instalação. Esta linha estará acima das anteriores, para o MySQL ser instalado antes da criação do banco de dados:
;apontamos para o arquivo de instalação do MySQL
Filename: {app}\complementos\mysql-installer-community-5.7.28.0.msi;
WorkingDir: {app}\complementos; Flags: shellexec waituntilterminated
Ficará assim:
Observe que nessa linha apontamos para onde está o arquivo de instalação {app}\complementos ou seja, na pasta onde a aplicação foi instalada, na subpasta
“complementos”
Importante notar também que nessas linhas estão definidas a senha do usuário root. Caso seu MySQL tenha outro usuário, deverá realizar a modificação dos valores de usuário e senha no script. Se o root não tiver senha (que é o default do XAMPP, pois o MySQL separado exige uma senha), basta tirar o –p.
DICA: nunca deixe o usuário ‘root’ como principal de sua aplicação. Sempre é melhor você criar um outro usuário e definir os privilégios para ele, mesmo que sejam todos. Deixe o root para o administrador total de seu MySql, na hipótese de alguma manutenção de emergência, ou mesmo no controle dos demais usuários, pois o root é o usuário principal, master de seu MySql e tem acesso total e irrestrito.
ATENÇÃO:
Pode ser incômodo a instalação do MySQL visível para o usuário, com uma série de configurações necessárias para bem instala-lo. Desta forma, pode-se fazer uma instalação via Linha de Comando do MySQL, que não necessite da intervenção do usuário e conhecimentos mais aprofundados. Para isso, temos o modo 3 a seguir:
MODO 3: Instalando a aplicação com o MySQL como instância (RECOMENDADO)
Vamos fazer uma cópia da pasta padrão do MySql. Se você usa o XAMPP como base é a sua pasta mysql (C:\xampp\mysql). No caso da instalação própria do MySQL, é a pasta C:\Program Files\MySQL\MySQL Server 5.7Abrindo a pasta você verá o seguinte conteúdo:
Crie uma pasta em sua área de trabalho para colocarmos a cópia dessa pasta. Ela será incorporada na criação de seu setup. Vamos chama-la de “mysql5” e coloque a pasta ‘mysql’
dentro dela:
Esta pasta foi copiada de seu destino, por exemplo, do XAMPP. Logo, todas as configurações de carregamento dos módulos do MySQL estão apontando para o diretório base C:\xampp. Logo, precisamos mudar isso, pois a ideia dessa instalação do MySQL é faze-la sem a necessidade do XAMPP e sim criar uma instância do MySQL a partir da aplicação (ou seja, incorporada nela).
Para isso, na pasta que você copiou mysql5 > mysql, abra a pasta “bin” e procure o arquivo my.ini.
Com o botão direito do mouse, selecione a opção “Editar” (ou “Abrir com” para escolher um editor de seu gosto). Repare que logo em seu início há várias referências a pasta base do Xampp:
Procure por todas as ocorrências de C:/xampp e troque pelo diretório que irá instalar sua aplicação, que se deixar na opção default do setup será:
C:\Program Files (x86)\ECProdutos\
Não esqueça de inverter as barras, logo ficará assim:
Faça essa mudança em todo o arquivo.
Após essa modificação, inclua a seguinte linha ao final do arquivo para que o MySQL inicie em modo normal de serviço:
innodb_flush_method=normal
Agora, precisamos modificar outro arquivo da mesma forma. Agora é o My.ini que está dentro do diretório “data” do seu MySQL
Faça a mesma modificação de diretório explicada anteriormente:
Para finalizar, precisamos limpar o diretório data do MySQL que você copiou, pois ele possui alguns arquivos de configuração que foram criados a partir da execução do MySQL via XAMPP, o que não ocorrerá na próxima instalação. Se esses arquivos forem mantidos, a nova instância do MySQL não rodará! Para isso, APAQUE os seguintes arquivos:
-ib_logfile0 -ib_logfile1
-ibdata1 E todos os que começarem com o sufixo ‘ib’
Feito isso, sua nova instância de MySQL está pronta para ser instalada e executada junto com sua aplicação. Agora precisamos alterar nosso script Inno Setup.
Vamos abri-lo:
Na seção [FILES], coloque a linha que carrega o conteúdo da pasta “mysql5” (que é a instância de MySQL) para o diretório base de sua aplicação:
Source: "C:\Users\UFES\Desktop\mysql5\*"; DestDir: "{app}"; Flags:
ignoreversion recursesubdirs createallsubdirs
Abaixo desta linha terá o carregamento do script .sql do seu banco de dados, que estará na pasta
“complementos” de sua pasta “ECProdutos-setup” de criação do setup.
Source: C:\Users\UFES\Desktop\ECProdutos-setup\complementos\empresa.sql*;
DestDir: {tmp}; Flags : ignoreversion deleteafterinstall
Ficará assim:
Na seção [RUN], iremos colocar as linhas para instalação da instância do MySQL como serviço do Windows, inicia-lo e a partir de então, criar o usuário, fornecer os permissionamentos e, por fim, carregar o banco de dados pelo script .sql. Coloque as linhas abaixo na seção, antes da linha que carrega sua aplicação:
Filename: {app}\mysql\bin\mysqld.exe; Parameters:"--install mysql";StatusMsg: Instalando o serviço mysql;Description: Instalando o serviço mysql; Flags: runhidden
Filename: net.exe; Parameters:"start mysql"; StatusMsg: Inicializando o serviço mysql; Description: Inicializando o serviço mysql; Flags:
runhidden
Filename: "{sys}\netsh.exe"; Parameters: "firewall add portopening TCP 3306 ""Port MySQL"""; StatusMsg: "Registando a porta default MySQL ...";
Flags: runhidden; MinVersion: 0,5.01.2600sp2
Filename: "{sys}\netsh.exe"; Parameters: "firewall set service type = fileandprint mode = enable"; StatusMsg: "Ativando o compartilhamento de arquivos e impressora ..."; Flags: runhidden; MinVersion: 0,5.01.2600sp2
; criando usuário e garantindo os privilegios
Filename: {app}\mysql\bin\mysql.exe; Parameters:"-u root -e ""CREATE USER 'giuliano'@'localhost' IDENTIFIED BY '1234';"; StatusMsg: "Criando o usuário do banco de dados";Description: Criando o usuário do banco de dados; Flags: runhidden
Filename: {app}\mysql\bin\mysql.exe; Parameters:"-u root -e ""GRANT ALL ON *.* TO 'giuliano'@'localhost';"; StatusMsg: "Atribuindo as permissões ao usuário";Description: Atribuindo as permissões ao usuário; Flags:
runhidden
Filename: {app}\mysql\bin\mysql.exe; Parameters:"-u root -e ""REVOKE ALL ON *.* FROM 'root'@'localhost';"; StatusMsg: "Revogando permissões ao root";Description: Revogando permissões ao root; Flags: runhidden
Filename: {app}\mysql\bin\mysql.exe; Parameters: "-u giuliano -h localhost -p1234 -e ""create database empresa CHARACTER SET 'utf8' COLLATE utf8_spanish_ci;"; WorkingDir: {tmp}; StatusMsg: "Criando a base de dados"; Flags: runhidden
Filename: {app}\mysql\bin\mysql.exe; Parameters: "-u giuliano -h localhost -p1234 -e ""use empresa; source empresa.sql;"; WorkingDir:
{tmp}; StatusMsg: Importando os dados; Flags: runhidden Explicação:
As quatro primeiras linhas estão instalando o MySQL via instância que está junto de sua aplicação e instalando como serviço no Windows. Observe que há o parâmetro {app} que apontará para o diretório base de onde foi instalada a sua aplicação.
o Filename – executa um aplicativo ou programa
o Parameters – contém os parâmetros para rodar esse programa por linha de código, tal como faríamos no Prompt. Por ter espaços, precisamos que os parâmetros estejam entre aspas.
Nas linhas seguintes, dado que o MySQL já foi instalado e ativado como serviço, se executa o mysql.exe passando os parâmetros shell para criar usuário (no exemplo,
‘giuliano’ com senha ‘1234’), fornecer as permissões e por ultimo, carregar o script .sql do banco de dados.
OBS.: Não esqueça que esse usuário a ser criado é o mesmo que está em sua conexão dentro da aplicação Java. Se na sua aplicação for o root e sem senha, é só suprimir a linha de criação do usuário e trocar o usuário ‘giuliano’ acima por ‘root’.
Ficará assim:
Para finalizar, precisamos colocar as instruções para quando for desinstalar a aplicação que será desinstalar o MySQL e seu serviço no Windows. Para isso, ao final do script crie uma seção [UninstallRun] e coloque as seguintes linhas:
Filename: net.exe; Parameters:"stop mysql"; StatusMsg: Paralização do serviço mysql;
Filename: "{app}\mysql\bin\mysqld.exe"; Parameters: "--remove mysql"
Ficará assim:
Basta compilar seu script que gerará o novo setup-ecprodutos.exe na pasta “Output” de seu diretório ECProdutos-setup, como será explicado a seguir.
ATENÇÃO:
Para testar sua aplicação, você deverá desinstalar o Xampp e/ou MySQL para liberação da porta 3306 e não gerar conflitos de serviços MySQL rodando em paralelo no Windows, ou instalar numa outra porta que não a 3306
O recomendado é instalar numa máquina “neutra”, ou seja, que não possui o MySQL para simular a instalação de sua aplicação com a nova instância do MySQL.
GERANDO O SETUP
Salve seu script e vamos compila-lo com as alterações feitas para gerar uma nova versão do EXE de setup com as inclusões feitas:
Se tudo estiver certo, o arquivo “setup-ecprodutos.exe” foi criado na pasta “Output” de sua pasta o projeto do setup “ECProdutos-setup”
Caso durante a compilação aparecer a mensagem abaixo:
Basta fechar o seu script, abri-lo novamente e realizar o processo de compilação normalmente que é gerado sem problemas.
TESTANDO O SETUP
Basta você levar arquivo da pasta “Output” para a máquina que será feita a instalação e executa- lo. Caso queria realizar um teste, copie para sua área de trabalho e excute-o. Siga os passos da instalação até o final, quando se chega na opção de “Executar o programa”
Observe que a instalação será feita na pasta padrão “Arquivos de Programas” do Windows onde será criada a pasta do projeto “ECProdutos”
Não deixe de Criar o Icone na área de trabalho
Ao avançar ele instalará os módulos de sua aplicação
Observe o momento que será instalado o MySQL
E a criação do banco de dados, importando os dados do script .sql
Ao final você pode selecionar para executar sua aplicação.
A imagem Splash irá aparecer para inicialização de sua aplicação.
E a aplicação é executada, exibindo sua interface principal
Observe que foi criado o ícone da aplicação na Área de Trabalho.