NoClassDefFoundError В Java
Определение:
- Java Virtual Machine не может найти определенный класс во время выполнения, который был доступен при компиляции время.
-
- Если во время компиляции класс присутствовал, но не доступен в пути Java-класса во время выполнения.
Примеры:
- Класс не находится в Classpath, нет уверенного способа узнать его, но много раз вы можете просто взглянуть на печать System.getproperty («java.classpath») и он будет печатать путь к классу оттуда, вы можете хотя бы получить представление о вашем фактическом пути к классам времени выполнения.
- Простой пример NoClassDefFoundError - класс принадлежит отсутствующему файлу JAR, или JAR не был добавлен в classpath или иногда Имя jar было изменено кем-то, как в моем случае, один из моих коллег изменил tibco.jar на tibco_v3.jar, и программа не работает с java.lang.NoClassDefFoundError, и мне было интересно, что случилось.
- Просто попытаться запустить w с явно выраженным параметром -classpath с классом classpath, который, по вашему мнению, будет работать, и если он работает, то это верный короткий признак того, что кто-то переопределяет java classpath.
- Проблема с правами на JAR-файл также может вызвать NoClassDefFoundError в Java.
- Typo on XML Configuration также может вызвать NoClassDefFoundError в Java.
- , когда ваш скомпилированный класс, который определен в пакете, не присутствует в одном пакете во время загрузки, как в случае JApplet он будет вызывать NoClassDefFoundError в Java.
Возможные решения:
- Класс недоступен в Java-классе.
- Если вы работая в среде J2EE, чем видимость класса среди нескольких Classloader также может вызвать java.lang.NoClassDefFoundError, см. примеры и сценарий для подробного обсуждения.
- Проверить на java.lang.ExceptionInInitializerError в вашем файле журнала. NoClassDefFoundError из-за сбоя статической инициализации довольно распространен.
- Поскольку NoClassDefFoundError является подклассом java.lang.LinkageError, он также может появиться, если некоторая его зависимость, например, родная библиотека, недоступна.
- Любой сценарий запуска переопределяет переменную среды Classpath.
- Возможно, вы запускаете свою программу с помощью команды jar, а класс не был определен в атрибуте ClassPath файла манифеста.
Ресурсы:
3 способа решения NoClassDefFoundError
java.lang.NoClassDefFoundError Шаблоны проблем
задан user3693060 18 January 2019 в 17:43
поделиться