Olá galera, eu desenvolvi um software (já está criado o arquivo .jar) e agora quero distribui-lo para os clientes.
Só que eu andei fazendo alguns testes e verifiquei que se eu não adicionar o caminho do driver no classpath ou copia-lo para pasta lib\ext do java, o meu software não encontra o driver.
Existe outra maneira que não seja uma desta duas para fazer isso? Caso sim, o que vcs recomendam?
Eu queria colocar dentro do meu .jar o arquivo .jar do driver ou deixá-lo no mesmo diretório da minha aplicação, e assim evitar copiar arquivos extras para máquina do usuário.
Se você não puder distribuir nem um mísero arquivo “batch” (*.bat ou *.cmd) para iniciar seu programa, pode-se alterar o MANIFEST.MF para pôr uma referência ao JAR. Acho que neste fórum mesmo tem alguns exemplos.
Mas normalmente eu prefiro usar uma batch, porque aí eu posso mudar o ícone como quiser, e passar os parâmetros (incluindo classpath e outras coisas) como eu quiser também. Não gosto de mandar só o .jar.
Na batch, por exemplo, pode haver algo como (no Windows)
start “” “c:\arquivos de programas\java\jre1.5.0\bin\javaw” -classpath bla bla bla ClasseBla argumentos bla bla bla
A
ax1
Acho que vou mandar o arquivo .bat então.
Os arquivos .jar do driver e do softare vão ficar na pasta “C:\estoque”.
Então o exemplo do código do arquivo .bat ficaria assim:
Eu poderia colocar a jre junto no meu software?
Ela ficaria em “C:\estoque\jre1.5.0” e eu software usaria essa jre, ficando assim o meu arquivo .bat:
“C:\estoque\jre1.5.0\bin\javaw -classpath C:\estoque\driver.jar -jar C:\estoque\estoque.jar”. E com isso eu evitaria ficar instando a JVM na máquina do clientte.
T
thingol
Se ler direitinho a licença você pode distribuir sim, só que não pode omitir nada da JRE (exceto três ou quatro arquivos que estão explicitamente citados na licença) e tem de pôr um “shortcut” para o arquivo de licença da JRE em algum lugar.
A
ax1
Ok, blz.
Então eu posso copiar o driver para a pasta jre…\ext e assim eu evito o uso da opção classpath.
Agora o exemplo do código do meu .bat tá certo, pq eu testei ele e não deu certo. Não encontrou o driver.
T
thingol
Se puder, não inclua arquivos em jre\lib\ext. Os únicos arquivos .jar que devem estar em jre\lib\ext são as bibliotecas de criptografia. Mesmo drivers de bancos de dados é melhor que estejam em um lugar diferente, como no seu CLASSPATH.
A
ax1
Vixe, eu nem imaginava isso. Vlw
renatosilva
thingol:
Na batch, por exemplo, pode haver algo como (no Windows)
start “” “c:\arquivos de programas\java\jre1.5.0\bin\javaw” -classpath bla bla bla ClasseBla argumentos bla bla bla
Pegando o bonde, Thingol você sabe um jeito de fazer um bat sem aparecer aquela tela preta horrível, ou pelo menos sem que ela fique aberta junto com a aplicação?
A
ax1
Opa, o comando javaw já faz isso que vc quer. A tela preta do dos aparece, mas só por alguns instantes e logo depois some.
renatosilva
Não é o ideal
T
thingol
Se chamar direto o javaw (sem o start) a partir de um shortcut (não de uma batch) não tem tela preta nenhuma. Só que aí você precisa fazer um shortcut monstro, com trocentos parâmetros.