Что может вызвать java.lang.NoClassDefFoundError? - PullRequest
5 голосов
/ 10 февраля 2010

Мой код компилируется нормально, но я получаю ошибку времени выполнения в этой строке:

File myFile = new File(FilenameUtils.concat(basePath, localPath));

Выдается ошибка:

java.lang.NoClassDefFoundError: org/apache/commons/io/FilenameUtils

Зачем код компилируется, если он не может разрешить класс?

Спасибо за любой совет.

Ответы [ 3 ]

9 голосов
/ 10 февраля 2010

Вы должны добавить библиотеку commons-io в ваш путь к классам во время выполнения.

http://commons.apache.org/io/

В окне свойств проекта NetBeans вы нажимаете Библиотеки на левой панели, а на правой панели - 4 категории пути к классам, которые можно настроить. Вам следует обновить Run path или убедиться, что Compile содержит библиотеку commons-io.

3 голосов
/ 10 февраля 2010

Проверьте это из учебного руководства по NetBeans

По сути, вы собираетесь добавить JAR-файл (библиотека, файл commons.apache.org IO) в classpath вашего свойства.

Если бы вы запускали упакованный проект из командной строки, вы могли бы указать classpath следующим образом:

java -cp apache-io.jar myproject.jar
2 голосов
/ 10 февраля 2010

Возможно, у вас есть jar в вашем пути к классам разработки, но он вам нужен в вашем классе времени выполнения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...