(Resolvido) Distribuição Java Swing + Maven + HSQL

Boa noite pessoal.

Venho aqui pedir a ajuda de vocês novamente, seguinte…
Terminei meu projeto Java +Maven e com banco de dados HSQL embedded. Testei tudo do projeto e está funcionando pelo NetBeans.
Porém na hora de criar o jar do projeto o banco hsqldb não está vindo junto ao jar. Tento acessar o software com Login e senha e não funciona.

Estou a trabalhar com Maven a primeira vez, será que pode ser algo de errado que fiz no Maven? Pois nos outros projetos que criei sem ele o projeto tinha a pasta lib, dist e com maven não tem. Os jars das dependências que instalei não estão junto ao projeto. Seria por esse motivo que o banco não funcione?

Bom dia Rafael, cara, faz assim, antes de tomar alguma atitude, roda o seu .jar via CMD, se houver algum erro, você vai conseguir visualizar por lá.

java -jar arquivo.jar

Me retornou esse erro

com.ext.connection.ConexaoBD conexao
GRAVE: null
java.lang.ClassNotFoundException: org.hsqldb.jdbcDriver
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Unknown Source)
        at com.ext.connection.ConexaoBD.conexao(ConexaoBD.java:26)
        at com.ext.gui.LoginGui.<init>(LoginGui.java:42)
        at com.ext.gui.LoginGui$10.run(LoginGui.java:319)
        at java.awt.event.InvocationEvent.dispatch(Unknown Source)
        at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
        at java.awt.EventQueue.access$500(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)

Você adicionou esse driver?

adicionei ele como dependência no POM e instalei o artefato manualmente.
Tenho que adicionar o hsqldb driver a pasta do projeto? Se sim, onde exatamente?

Cara, tenta adicionar manualmente, talvez funcione. Eu não uso muito o Maven, mas todas as vezes que precisei usar, não tive problemas com importação, foi tudo automático.

Vc tá usando o NetBeans? Eclipse?

Netbeans brow

Você tem que mandar o maven incluir as dependencias no jar (fatjar) para você, ou mandar o maven criar o arquivo MANIFEST com as dependencias que deverão ser carregadas no classpath ao rodar a aplicação:

Jar com dependencias (ou fatjar):

Arquivo MANIFEST:

Lucastody perfeito esses artigos que mandou. No terceiro “Arquivo MANIFEST” funcionou certinho. Porém aconteceu uma coisa. Ao compactar o jar com o banco ele ficou vazio, e quando eu coloquei pra construir na tabela usuário tinha um registro para poder fazer conexão, sem ele não consigo acessar o software.

Como faço para compactar com HSQLDB sem zerar as tabelas?
Ou se não tiver como, como faço para inserir dados através do Script gerado pelo BD?

Deu certooo! apenas copiei o arquivo SCRIPT da pasta raiz e colei junto a pasta criada pelo maven ao criar o banco. Showw! funcionou corretamente.

Muito obrigado mesmo a ajuda amigos!

1 curtida