Ошибка выполнения NoClassDefFoundError с общим кодеком apache jar

У меня есть класс java (SecureHash), который использует функции общего кодека apache. Я компилирую код с

javac -classpath sample/module/commons-codec-1.8.jar  sample/SampleAcn.java sample/module/SampleLoginModule.java sample/module/SecureHash.java 

Я не получаю никаких ошибок при компиляции, но я получаю ошибки времени выполнения, когда инициализируется SecureHash:

java.lang.NoClassDefFoundError: org/apache/commons/codec/DecoderException
    at sample.module.SampleLoginModule.login(SampleLoginModule.java:242)
    .....


 Caused by: java.lang.ClassNotFoundException: org.apache.commons.codec.DecoderException
     at java.net.URLClassLoader$1.run(Unknown Source)
         .....

Я не могу понять причину этой ошибки, так как я включаю банку в общий кодек.


person papafe    schedule 11.11.2013    source источник


Ответы (2)


Вы уверены, что правильно используете настройку CLASSPATH при запуске своих классов? Вам также необходимо указать расположение файла sample/module/commons-codec-1.8.jar.

person Akira    schedule 11.11.2013
comment
Я уверен, что указываю правильный путь для jar кодека. В противном случае, я думаю, он бы вообще не скомпилировался, я полагаю - person papafe; 11.11.2013
comment
Ну, компиляция и выполнение - это независимые процессы. Извините, если, говоря, что я ошибочно полагаю, что вы новичок. Когда вы запускаете свой класс, вам нужно снова передать весь путь к классам, а также расположение только что созданных классов: java -classpath sample/module/commons-codec-1.8.jar:dir_where_you_can_find_your_classes your.main.Class - person Akira; 12.11.2013
comment
Вы были полностью правы. Я неправильно понял, что вы хотели добавить путь к классам во время запуска, и я чувствую себя глупо из-за этого, но большое спасибо! - person papafe; 12.11.2013
comment
Абсолютно не нужно так себя чувствовать. Мы все здесь учимся. Просто рад, что я мог предложить вам небольшой ярлык! :) - person Akira; 12.11.2013

В соответствии с зависимостями здесь вам также может понадобиться commons-logging, но вы, вероятно, уже получили это.

person constantlearner    schedule 11.11.2013