Пакет Java, проект, ошибка NoSuchMethod - PullRequest
3 голосов
/ 15 апреля 2010

У меня есть 2 связанных проекта, и у каждого из этих 2 проектов есть пакет под ними.

XProject -> XPackage -> XClass -> X1Method (); X2Method ();

YProject -> YPackage -> YClass -> Y1Method ();

Я пытаюсь вызвать методы X1 и X2 из метода Y1. Я могу вызвать метод X1, но когда я вызываю метод X2, я получаю ошибку времени выполнения (java.lang.NoSuchMethodError:)

Все методы общедоступны, и с именами методов нет ничего плохого. Это просто бессмысленно, если один из них работает, а другой выдает ошибки во время выполнения.

Любая помощь будет оценена. Спасибо.

Ответы [ 2 ]

2 голосов
/ 15 апреля 2010

Из java.lang.NoSuchMethodError Javadoc :

Брошенный, если приложение пытается вызвать указанный метод класса (статический или экземпляр), и у этого класса больше нет определения этого метода.

Обычно эта ошибка отлавливается компилятором; эта ошибка может возникнуть только во время выполнения, если определение класса несовместимо изменилось.

Другими словами, путь к классу времени выполнения не содержит класс с методом desied, хотя он был доступен в пути к классам компиляции. Подведем итог: ваш путь к классу испорчен. Очистите и выровняйте это. Как это сделать точно зависит от вашей среды.

Обновление : Таким образом, это веб-приложение Java EE в Eclipse? Предполагая, что один является Динамический веб-проект , а другой - обычный Java Project , в свойствах проекта Динамический веб-проект необходимо добавить обычный Java Project в пути сборки и Зависимости модуля Java EE .

Если это не решит проблему, то, скорее всего, путь к классу по умолчанию для сервера приложений или JRE является грязным. Вам нужно будет удалить все ненужные связанные с проектом библиотеки из JRE/lib, JRE/lib/ext и Tomcat/lib и пообещать себе, что вы больше не трогаете эти пути к библиотекам;)

0 голосов
/ 15 апреля 2010

Очень вероятно, что вы компилируете против некоторого .class класса XClass в вашем classpath. Но у среды выполнения (вероятно, связанный проект) другая версия XClass. Это зависит от окружающей среды. Вам нужно посмотреть, какие артефакты находятся в вашем пути к классам во время компиляции, а какие обнаружены во время выполнения;

Как прокомментировали другие. Для дальнейшего ответа требуются подробности относительно вашей IDE / системы сборки или даже кода.

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