У меня есть проект с различными классами и пакетами в качестве зависимостей. Обратите внимание, что все записи ниже встречаются в одном проекте.Java 6 runtime не переопределяет класс, вызванный из-за зависимости .jar
У меня есть класс, который в какой-то момент запускает код getDiagramPanel().setRelationsPaintOrder(new Comparator() {
.
getDiagramPanel()
вызывает метод от DjtSheet.class
, который находится в файле .jar зависимости. Этот метод возвращает объект DjtDiagramPanel
. У меня также есть файл DjtDiagramPanel.java
, который должен переопределить один из пакета и содержит метод setRelationsPaintOrder()
.
В Java 7 это работает нормально. Он корректно вызывает метод из зависимости, который возвращает объект в формате класса, который переопределяет класс панели из пакета зависимостей.
В Java 6, однако, класс панели из пакета зависимостей возвращается вместо одного из моего проекта.
java.lang.NoSuchMethodError: com.dlsc.djt.gantt.DjtDiagramPanel.setRelationsPaintOrder(Ljava/util/Comparator;)V
Обратите внимание, что это сообщение встречается во время выполнения! Компиляция проекта не дает ошибок.
Как я могу это решить?
У вас есть другая версия фляги во время выполнения и в compiletime. Проверьте путь пути выполнения. – Kayaman
Как вы запускаете приложение? Используете ли вы скрипт или какую-то рабочую структуру? – AlexR
@ Kayaman Eclipse показывает мне, что для параметра 'Java Compiler' установлено значение' JavaSE-1.6'. Я убедился, что это происходит путем stting 'maven-compiler-plugin' в моем pom.xml до' 1.6'. В конфигурациях Debug JRE также используется для 'JavaSE-1.6' (jre6) (я должен признать, что я еще не делал последнего, хотя я думал, что сделал, но, к сожалению, ошибка сохраняется). – Joetjah