Я видел, что этот вопрос задал много, но я до сих пор не могу найти решение для него. Ну, решение, которое работает для меня. У меня есть проект, который использует Apache POI, и я обязательно включил все внешние JAR. Проект компилируется и работает нормально, в затмении, но когда я запускаю банку с «java -jar Test.jar
» Я получаю эту ошибку:NoClassDefFoundError Jar Ошибка для org/apache/poi/ss/usermodel/Лист
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/Sheet
я не уверен, если это полезная информация, но я создал папку Lib для моего проекта и поместили там библиотеку poi. Это означает, что зависимости находятся в файле JAR, когда я его создаю, я подумал, что должен упомянуть об этом, потому что увидел несколько решений о том, что у вас есть только внешние банки рядом с исполняемым банком. Я также попытался установить свой путь к каталогу проекта.
Что мне кажется неправильным?
Я это сделал, но все равно получаю ту же ошибку. Это то, что я положил в свой манифест Класс-путь: lib/poi-3.9/poi-3.9-20121203.jar Я все еще управлял своей банкой с помощью «java -jar Test.jar» – Taztingo
Выглядит нормально, проверьте, что вы иметь символ новой строки в конце файла манифеста. Также убедитесь, что манифест был правильно включен (путем открепления его от временной папки). Наконец, проверьте, правильно ли указан путь к файлу poi jar. – Reimeus
У меня есть unjarred и проверен файл MANIFEST.MF. Файл был включен, у него была новая строка, и я уверен, что путь правильный. Является ли classpath из файла MANIFEST или из каталога проекта? – Taztingo