Classpath - JÁ LI O TUTORIAL!

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

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

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

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!

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:

Tente:

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

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!!!