Java não encontra bibliotecas em CLASSPATH

0

Eu tenho um arquivo JAR, que tem muitas dependências (principalmente coisas do ApacheCommons). Quando coloco todos os JAR's no mesmo diretório que meu JAR principal, tudo funciona bem. Mas isso faz uma bagunça e também significa que as pessoas têm que carregar todas essas bibliotecas externas sempre que moverem o JAR do seu programa em seu sistema.

Então, coloquei todos eles em um diretório separado e adicionei o caminho desse diretório à variável de ambiente CLASSPATH (usando /etc/environment ). Agora, mesmo que echo $CLASSPATH retorne esse caminho, ainda executando meu JAR sem essas bibliotecas no mesmo diretório causa java.lang.NoClassDefFoundError (o que acontece quando não é possível encontrar os JARs externos necessários).

Qualquer ajuda / ideia seria muito apreciada.

    
por lfk 11.08.2013 / 19:06

1 resposta

0

Este não é realmente um problema do ubuntu, consulte esta pergunta em stackoverflow.

A Variável CLASSPATH não lista os pathes para os arquivos jar, mas os patches para os arquivos de classe Java. Para incluir um arquivo jav em um caminho de classe, é necessário colocar o nome do arquivo jar-file no caminho de classe (por exemplo, CLASSPATH=/path/to/some/jar/file/jarfile.jar ).

    
por Thomas 11.08.2013 / 19:42