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
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.
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.
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.
[quote=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
[/quote]
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?
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.