Classpath - JÁ LI O TUTORIAL!

6 respostas
E

Pessoal, vou ter que insistir nessa questão mesmo já tendo lido o tutorial…mil perdões pra quem estiver de saco cheio, e, por favor, SOCORRO!

Tenho dentro de um diretório GraphEditor_exec os seguintes arquivos:

GraphEditor.jar - contém a classe Main, com o arquivo manifest configurado direitinho para executar o programa

diamante.jar - biblioteca usada pelo GraphEditor, que contém vários pacotes

OK, vou tentar rodar os arquivos e obtenho:
Exception in thread “main” java.lang.NoClassDefFoundError: diamante/core/graph/Graph at graph_editor.GraphEditor.main(GraphEditor.java:16)

Até aí, parece um erro normal de classpath, onde o diamante.jar (onde a tal classe Graph está contida no pacote diamante.core.graph, certinho) não estaria sendo setado corretamente, certo? Pois é, mas já tentei as seguintes combinações:

set classpath=.;.\diamante.jar;%classpath%
set classpath=.;C:\Documents and Settingseduardo\My Documents\PUC\Projeto\GraphEditor_exec\diamante.jar;%classpath%

Bom, o diretório atual eu sempre configuro, e tentei configurar o caminho do jar usando somente o .diamante.jar e o caminho completo, mas nenhum dos dois funciona…alguém sabe o que está faltando???

Nota: já conferi os JAR e os pacotes estão certinhos lá dentro…

[]'s e MUITO obrigado

6 Respostas

Luca

Olá

Quando seu patch contém diretório com brancos no nome como é o caso do Documents and Settings é de bom alvitre coloca-lo entre aspas no classpath. Por exemplo:

set classpath=.;C:“Documents and Settings\eduardo\My Documents”\PUC\Projeto\GraphEditor_exec\diamante.jar;%classpath%

Mas seu problema talvez seja a localização de classe dentro de pacotes. É isto que você precisa rever. Qual o comando que está usando para executar o sistema? Aí deve estar o erro.

[]s
Luca

cv1

O que voce tem configurado na tag Class-Path do MANIFEST do arquivo GraphEditor.jar?

E

Na verdade, não configurei o classpath dentro do manifest…muito bem lembrado!!!

Quanto a colocar aspas no nome, obrigado pela dica, mas, como vc disse, não resolve o problema =].

O comando que uso pra rodar é:
java -jar GraphEditor.jar

Vou tentar alterar o manifest e já posto um feedback

Obrigado pessoal!

E

Tentei colocar a variável Class-Path no meu manifest mas também não funcionou…o diamante.jar está dentro do GraphEditor.jar, na mesma pasta que a classe main…o manifest está assim:

Manifest-Version: 1.0
Class-Path: graph_editor.diamante.jar
Main-Class: graph_editor.GraphEditor

Continuo na mesma!! hehe :oops:

cv1

Tente:

Manifest-Version: 1.0
Class-Path: diamante.jar
Main-Class: graph_editor.GraphEditor

E

Perfeito cv :smiley:

Pra corrigir foi só fazer o que vc falou, colocar o nome do jar (sem caminho nenhum) no classpath do manifest. Simples, depois que funciona, né??

Muito obrigado, pessoal!!!

Criado 11 de dezembro de 2003
Ultima resposta 11 de dez. de 2003
Respostas 6
Participantes 3