NoClassDefFoundError

Olá pessoal, eu estou com problemas em fazer o meu arquivo jar reconhecer bibliotecas internas à elas, são outros jar´s. Quando executo pelo eclipse (não pelo jar), o programa reconhece os caminhos, pois os jar´s fazem parte do projeto. Mas, quando gero o jar pelo Ant e o executo, me deparo com este problema.

Alguém sabe como proceder?

Como esta o seu CLASSPATH? Note que cada .jar precisa estar referenciado individulamente.

Rafael

bom, eu defino o classpath num arquivo xml, usando o Ant. Abaixo o pedaço que uso:

<path id="compile.classpath"> <pathelement path ="${files.dir}/JFreeChart/jfreechart-1.0.0-pre2.jar"/> <pathelement path ="${files.dir}/JFreeChart/jcommon-1.0.0-pre2.jar"/> <pathelement path ="${files.dir}/EPSDump/dump.jar"/> <pathelement path ="${classes.dir}"/> <pathelement path ="${classpath}"/> </path>

files.dir corresponde a files/lib. Alguma sugestão?

editado

Para complementar, aqui está o meu target que usa o classpath:

<target name="Compilar" depends="init"> <javac srcdir="${src.dir}" destdir="${classes.dir}" verbose="off" debug="on"> <classpath refid="compile.classpath"/> </javac> </target>

o erro que aparece da 1ª linha é o seguinte:

Exception in thread “AWT-EventQueue-0” java.lang.NoClassDefFoundError: org/jfree/chart/ChartPanel

Ok, mas o problema eh para rodar, nao?! Voe esta gerando um JAR com outros jars dentro, ou esta executando o class diretamente? Caso esteja executando diretamente, voce precisa adicionar os jars no classpath:

java -cp .;c:/blah/files/lib/Jar1.jar;c:/blah/files/lib/Jar2.jar nome.pacote.NomePrograma

Rafael

Eu estou gerando um jar com outros jar´s dentro. Não estou sabendo configurar pra achar os outros jar´s dentro deste projeto.jar. Se souber como fazer, ou tiver alguma outra maneira, vai me ajudar bastante… Tô há dias tentando solucionar isso… :?

Referencie os jars com Class-Path no seu manifest.mf

http://java.sun.com/developer/Books/javaprogramming/JAR/basics/manifest.html#download

Rafael

Tranquilo, dei uma olhada no site que você recomendou. Me esclareceu algumas coisas, mas ainda não resolvi.

Vou colocar como ficou o meu targer que faz a referência ao manifest:

[code]



</jar>[/code]

Alguma sugestão?

Bom, o tipo de erro mudou, agora ele não acha as classes internas ao jar, mas acha os .jar.

erro: java.lang.NoClassDefFoundError: org/jfree/data/xy/XYDataset

Esta classe é a primeira usada no meu programa.

Please help! :wink:

Estou tendo exatamente o mesmo problema, com a mesma biblioteca (JFreeChart), e depois de mudar o MANIFEST.INF, acontece a mesma coisa. Como resolveram isso?