HSQLDB dentro de um único JAR, é possível?

3 respostas
edsonlopes

Pessoal, andei lendo que não é possível (eu não acredito) colocar a base de dados HSQLDB dentro do mesmo Jar da aplicação?

Isso é verdade? Eu coloquei o hsqldb.jar, e agora eu gostaria de empacotar tudo, até mesmo a pasta da base de dados! É possível executar o programa desta forma? (Aplicação, HSQLDB + Base de dados) em um mesmo JAR?

Entenda-se como “base de dados” os arquivos .script, .properties, .log e etc do HSQLDB… (E esses, dentro do JAR, ser completamente editável e usável como qualquer outro SGBD)

3 Respostas

davidbuzatto

Não.
Pense. Você tem um .jar, que está sendo usado pela máquina virtual. Você quer alterar arquivos que estão dentro do arquivo .jar (que já está em uso!). Sinceramente, isso é uma baita de uma gambiarra e ainda bem que não funciona. Pq quer fazer isso? Quer algo monolítico? Qual o problema de ter a base separada?

Entretanto, se você quer mesmo enfiar o pé na jaca, você poderia:
Execute o programa.
Faça uma cópia dos arquivos da base.
Aponte o hsqldb para os arquivos gerados.
Inicie o sgbd.
Trabalhe com o programa.
No final, remonte o .jar usando os arquivos novos.
Consigo pensar em N problemas com essa abordagem.

Isso é só curiosidade ou você quer mesmo fazer isso?

edsonlopes

Bem, desde que o “servidor” HSQLDB roda direto do JAR, pensei que a base de dados era possível fazer igual… (Não como uma gambiarra, mas sim como um recurso do HSQLDB Embarcado)

Ok, então eu tenho que distribuir o banco por fora para que funcione.
(Me parece que eu li que era possível em alguma documentação do HSQLDB, por isso achava que era realmente possível, mas não vi como era para se implementar)

No mais, obrigado pela resposta!

davidbuzatto

Sim, além de ser o mais sensato a se fazer.

Criado 24 de maio de 2010
Ultima resposta 24 de mai. de 2010
Respostas 3
Participantes 2