Справка java.lang.NoClassDefFoundError - PullRequest
1 голос
/ 23 октября 2009

Я пытаюсь прочитать письмо от Tomcat 6.0. Всякий раз, когда я помещаю байт-код и исходный код класса MailReader в одну и ту же папку (и помещая основной метод), я могу скомпилировать и запустить класс и читать почту из командной строки, но когда я помещаю этот класс в папку WEB- INF / классы Tomcat (удаляя метод main), я получаю большое толстое исключение, говорящее:

не удалось найти класс основного класса: Message Reader. Программа будет существовать

Почему это так? Я уже поместил jar-файл активации.jar и mail.jar в папку lib Tomcat, и я пытаюсь запустить вышеуказанный класс из командного файла.

Ответы [ 2 ]

1 голос
/ 23 октября 2009

У вас есть 2 версии одной и той же банки. Вы должны иметь это в одном месте. Вы можете увидеть этот ответ для объяснения , но обычно это происходит в Tomcat, особенно с такими вещами, как парсеры xml и драйверы JDBC Поэтому проверьте WEB-INF / lib и Tomcat / lib на наличие конфликтов

0 голосов
/ 23 октября 2009

Мне неясно, что вы делаете. Вы говорите, что пытаетесь читать почту из Tomcat, но затем говорите, что пытаетесь запустить из командного файла. Я предполагаю (поправьте меня, если я ошибаюсь), что у вас есть ваши классы в каталоге Tomcat webapp / WEB-INF / classes, на который вы просто указываете в своем пакетном файле. В этом случае поведение Tomcat не влияет на это, это просто каталог.

Другая сбивающая с толку вещь заключается в том, что вы говорите «удаление основного метода». Если вы пытаетесь запустить программу из командной строки с помощью «java a.b.c.MyClass», тогда классу MyClass необходим правильно определенный метод main для запуска. Почему вы вставляете и удаляете основной метод?

...