Então eu n sei, por que eu gero o .jar certinho dele, quando eu abro todas as classes e arquivos estão dentro dele, é a primeira jframe abre certinho, é como se o db n funciona-se… alguem sabe se precisa da um start dentro dele para ele funcionar ?
G
giulianocosta
Cara, bota um log pra saber o que ta acontecendo… ou chama no debug. Assim sem nada não da pra saber…
Alchemist
então me ajuda por favor, como eu vou colocar um log ou debugar se isto acontece dentro do .jar, a aplicação está funcionando normalmente quando eu rodo ela no eclipse, conecta faz tudo bonitinho, o problema esta na hora que eu exporto como.jar… parece que o db n funciona :s
G
giulianocosta
Cara, tu terás que editar tua classe antes de montar o jar. Edite ela colocando nem que seja um JOptionPane.showMessage() no lugar aonde supostamente esta dando a exceção. Sem isso fica dificil saber o que pode ser. Só com um stacktrace do erro pra saber isso.
Alchemist
Hum fui exportar o .jar novamente e reparei que ele da dois erros na hora de exportar os arquivos do banco,
O meu banco se chama financeiro.
Os dois erros apresentados são:
Será que alguem sabe o que eu devo fazer ?
G
giulianocosta
Se esses dois arquivos sao necessarios à tua aplicação, eles devem estar junto no jar. Tu deves empacotá-los junto!
Alchemist
Sim seria a logica né, mais quando eu vou exportar a aplicação com eles dentro, da os dois erros ai de cima…
Alchemist
esta dando este erro:
Esta é a minha classe de conecção
packagemodel.util;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.SQLException;importjava.sql.Statement;publicclassConexao{privateConexao(){}staticpublicConnectionabrirConexao()throwsClassNotFoundException,SQLException{Class.forName("org.hsqldb.jdbcDriver");Connectionconn=DriverManager.getConnection("jdbc:hsqldb:file:src/model/database/financeiro","sa","");conn.setAutoCommit(false);System.out.println("Conectado");returnconn;}staticpublicvoidfecharConexao(Connectionconn)throwsClassNotFoundException,SQLException{Statementstmt=conn.createStatement();stmt.execute("SHUTDOWN");conn.close();System.out.println("Desconectou");}staticpublicvoidcommitConexao(Connectionconn)throwsSQLException{conn.commit();}staticpublicvoidrollbackConexao(Connectionconn)throwsSQLException{conn.rollback();}}//fim classe
G
giulianocosta
Cara, tu ta usando o NetBeans? Se for nele tem uma opção bastante simples. Que é no menu Executar > Definir configuração do projeto > Personalizar…
Dentro terá uma opção bibliotecas que tu pode incluir o teu hsqlddb.jar junto na teu jar.
Alchemist
Coloquei a minha classe de conexão ai em cima !!
To usando o Eclipse :S, puta mais se n tem nem ideia do que pode ser ? to procurando no google mais ta dificil :s
G
giulianocosta
Cara, uma solução simples seria tu colocar o jar do hslqdb no path da máquina ou rodar desta forma:
java -classpath “c:\diretorio do hsqldb\hsqldb.jar” teupacote.TuaClasseMain
O problema de se usar assim é que tu não vai poder distribuir somente o jar da tua aplicação. Mas se tu quer rodar apenas na tua máquina vai funcionar.
Alchemist
Puts cara o pior é que este projeto aqui é para ser distribuido :s…
Caramba viu deve ser alguma coisa simples que eu não estou achando!! Se alguem tiver alguma dica manda ai que eu já to ficando desesperado !
G
giulianocosta
Tu ta criando teu jar pelo eclipse?
Alchemist
Isto mesmo pelo eclipse, procurando na net eu achei este topico aqui :
Será que vc pode me ajudar a faze-lo ? Pq eu n entendi muito bem o que eles fizerão :s
G
giulianocosta
brother, tu é novo no java?
Seguinte abra o jar do hsqldb com o winrar (por exemplo), depois descompacte ele e tu verá que se criou uma estrutura de diretórios que na real sao os pacotes do bagulho. É só tu colar essa estrutura toda na raiz do teu projeto do eclipse. Na hora que tu gerar o jar eles irao junto no teu jar como se fizessem parte da tua aplicação. O unico problema disso será que, a cada nova versao do banco tu tera que fazer esse processo e distribuir teu jar de novo.
Tu tem como me mandar teu projeto eclipse?
Alchemist
Hum mais isto com o projeto todo do hsqldb ? Puta queria saber a solução que o pessoal fala de mudar no manifest…
G
giulianocosta
Brother, tou te mandando email mas tu não responde. Da uma olhada lá.
G
giulianocosta
Cara, só terá um porém. Teus arquivos financeiro.properties e financeiro.script ficarão sempre fora do jar, pois são arquivos usados pelo banco. Isso não tem como resolver.
O que tu podes fazer é criar uma classe java que contem todas insercões das tabelas base pro sistema funcionar e na hora que o cara rodar pela primeira vez o sistema tu roda esse script e salva o banco por exemplo num “C:\Documents and Settings\Perfil do usuário”.
De resto eu só descompactei o hsqldb.jar e coloquei os class dele junto no teu jar. É como se o banco fizesse parte do teu sistema.
Alchemist
Hum entendi, eu estava pesquisando na net e talvez acha uma solução usando o Fat Jar, onde eu deixaria o hsql em outro diretorio e compactaria usando este Fat Jar, vou tentar aqui se eu consegui eu posto a solução.
Obrigado pela ajuda ^^
Alchemist
Bom só para fechar o topico…
Considerações:
Realmente não é possivel deixar o banco de dados dentro da aplicação.
Rolução:
Criei um diretorio lib onde o minha app.jar vai ficar, dentro deste diretorio esta o meu hsql e uma pasta database.