NoClassDefFoundError путем переключения на другой проект - PullRequest
0 голосов
/ 28 июня 2019

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

В любом случае, у меня есть проект (импортированный поверх git) с пакетом и множеством полезных функций. Есть также пакет с некоторыми демонстрациями, они работают совершенно нормально.

Если я сейчас скопирую одну из этих демонстраций в свой собственный проект, я получу ошибку

Исключение в потоке "main" java.lang.NoClassDefFoundError: org / jfree / data / xy / XYDataset в сети. [...]

Я думаю, что должно быть простое решение, поскольку оно выполняется в другом проекте.

Спасибо, что нашли время.

1 Ответ

0 голосов
/ 28 июня 2019

NoClassDefFoundError в Java возникает, когда виртуальная машина Java не может найти определенный класс во время выполнения, который был доступен во время компиляции. Например, если у нас есть вызов метода из класса или доступ к любому статическому члену класса, и этот класс недоступен во время выполнения, JVM сгенерирует NoClassDefFoundError.

  • Класс недоступен в Java Classpath.
  • Возможно, вы запускаете программу с помощью команды jar, а класс не определено в атрибуте ClassPath файла манифеста.
  • Любой сценарий запуска переопределяет переменную среды Classpath.
  • Поскольку NoClassDefFoundError является подклассом java.lang.LinkageError он также может появиться, если одна из его зависимостей, такая как нативная библиотека, может быть недоступна.
  • Если вы работаете в среде J2EE, тогда видимость Class среди нескольких Classloader также может вызвать java.lang.NoClassDefFoundError, подробные обсуждения см. в разделе примеров и сценариев.
...