Exportando .jar com hsqldb

Boa Tarde pessoal,

Estou fazendo uma aplicação Desktop utilizando hsqldb e estou tendo problemas para importar o hsqldb junto com o meu .jar.

Estou usando ele em modo Standalone, eu importo ele certtinho e tal, porem ele não está funcionando.

Alguem poderia me ajudar ?

Qual erro está acontecendo? StackTrace?

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 ?

Cara, bota um log pra saber o que ta acontecendo… ou chama no debug. Assim sem nada não da pra saber…

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

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.

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 ?

Se esses dois arquivos sao necessarios à tua aplicação, eles devem estar junto no jar. Tu deves empacotá-los junto!

Sim seria a logica né, mais quando eu vou exportar a aplicação com eles dentro, da os dois erros ai de cima…

esta dando este erro:

Esta é a minha classe de conecção

package model.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
	
public class Conexao {
		
		 
	private Conexao(){  
	}
	
	static public Connection abrirConexao() throws ClassNotFoundException, SQLException{
		Class.forName("org.hsqldb.jdbcDriver");
		Connection conn = DriverManager.getConnection("jdbc:hsqldb:file:src/model/database/financeiro", "sa", "");
	    conn.setAutoCommit(false);
	    System.out.println("Conectado");
	    return conn;
	}
		
	static public void fecharConexao(Connection conn) throws ClassNotFoundException, SQLException{
			Statement stmt = conn.createStatement();
			stmt.execute("SHUTDOWN");
			conn.close();
			System.out.println("Desconectou");
	}
	    
	static public void commitConexao(Connection conn) throws SQLException{
		conn.commit();
	}
	
	static public void rollbackConexao(Connection conn) throws SQLException{
		conn.rollback();
	}
	
}//fim classe

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.

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

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.

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 !

Tu ta criando teu jar pelo eclipse?

Isto mesmo pelo eclipse, procurando na net eu achei este topico aqui :

http://www.portaljava.com/forum/posts/list/20216.page

Será que vc pode me ajudar a faze-lo ? Pq eu n entendi muito bem o que eles fizerão :s

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?

Hum mais isto com o projeto todo do hsqldb ? Puta queria saber a solução que o pessoal fala de mudar no manifest…

Brother, tou te mandando email mas tu não responde. Da uma olhada lá.

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.