Java-пакет, проект, ошибка NoSuchMethod

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

XProject → XPackage → XClass → X1Method(); X2Method();

YProject → YPackage → YClass → Y1Method();

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

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

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

Ответы

Ответ 1

Из java.lang.NoSuchMethodError javadoc:

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

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

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

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

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

Ответ 2

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

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