Empacotamento de aplicação

10 respostas
C

Olá,

Criei um aplicação Swing + Hibernate, mas não consigo criar o jar da aplicação. Quando tento rodar pelo prompt com jdk 1.5, ocorre uma exceção que não consegue localizar o hibernate.cfg.xml, quando rodo pelo jdk 1.4.2, ocorre uma exceção de que não consegue encontar uma biblioteca. Eu sei que eh problema de classpath, abaixo está minha target do ant q gera o jar:

Gerando o .jar do projeto.

Eu omiti algumas bibliotecas para ficar mais legível, mas no manifest coloco todas as bibliotecas necessárias.

Minha estrutura de diretório é:
projeto
+bin
+lib
+src --> pacotes da aplicação + hibernate.cfg.xml

10 Respostas

_fs

Coloque o hibernate.hbm.xml na raiz do diretório BIN, e não SRC :smiley:

C

O hibernate.cfg está no bin, esse diretório tem a mesma estrutura do src. Tenho que especificar no manifest onde está o hibernate.cfg.xm?

_fs

Hum, então apenas coloca-lo em lib deveria bastar.

Se não, especifique o local do arquivo quando for construir a SessionFactory com o Hibernate. Prefiro fazer assim.

C

Jah fiz isso tb. No jdk 1.4 ele não dah esse erro, mas dah de biblioteca.

_fs

Fazendo isso funciona no 1.5?

Qual biblioteca falta no 1.4?

C

No 1.5 dah exceção que não consegue encontrar o hibernate.cfg.xml. No 1.4 a exceção é: Exception in thread “main” java.lang.NoClassDefFoundError: com/jgoodies/looks/plastic/PlasticTheme

_fs

Tente configurar assim, considerando que o arquivo estará na raiz de BIN

Configuration conf = new Configuration().addFile( new File( getClass().getClassLoader().getResource( "hibernate.cfg.xml" ).getPath() ) );
factory = conf.configure().buildSessionFactory();
C

Olá,

Quando eu faço:

Configuration conf = new Configuration().addFile( new File( getClass().getClassLoader().getResource( "hibernate.cfg.xml" ).getPath() ) );
factory = conf.configure().buildSessionFactory();

A exceção muda:
INFO: Mapping file:file:\C:\Documents%20and%20Settings\Eduardo\Desktop\App.jar!
\hibernate.cfg.xml
23/02/2005 09:50:40 net.sf.hibernate.cfg.Configuration addFile
SEVERE: Could not configure datastore from file: file:\C:\Documents%20and%20Settings\Eduardo\Desktop\App.jar!\hibernate.cfg.xml
java.io.FileNotFoundException: file:\C:\Documents%20and%20Settings\Eduardo\Desktop\App.jar!\hibernate.cfg.xml (A sintaxe do nome do arquivo, pasta ou nome do volume estß incorreta)

Águem sabe o que é a exclamação no final do arquivo.jar?
Tem como eu colocar o hibernate.cfg.xml fora do jar?

_fs

Cara, fui ajudar um colega meu com um problema similir, e fiz o mesmo erro.

Não tem pasta BIN em arquivo .jar (a não ser que seja o nome do seu pacote)

O jar deve ficar assim
MANIFEST >> manifest.mf
LIB >> *.jar
com.seu.pacote.suasclasses

E o hibernate.cfg.xml deve estar na raiz do Jar. Tenho certeza que vai funcionar agora, desculpe pelo engano :expressionless:

C

A estrutura do meu jar tah assim:

META-INF–>MANIFEST.MF
lib —> *.jar
com–>estrura dos pacotes de classe
hibernate.cfg.xml

Tu sabes o que é essa exclamação no final do jar ?

Criado 22 de fevereiro de 2005
Ultima resposta 23 de fev. de 2005
Respostas 10
Participantes 2