Класс пользовательских исключений не компилируется в файл .class - PullRequest
1 голос
/ 01 февраля 2011

Я создал довольно простой пользовательский класс, который расширяет Exception, код которого приведен ниже. Проблема, с которой я сталкиваюсь, заключается в том, что этот конкретный класс не компилируется в файл .class (в каталоге build / classes и в файле jar для проекта). Все остальные классы скомпилированы в файлы .class и упакованы в файл .jar, как и ожидалось.

Тесты jUnit работают нормально, даже когда они запускаются из других проектов в рабочей области, но когда я пытаюсь сослаться на этот проект из другого проекта, который зависит от jar, код завершается ошибкой с исключением NoClassDefFoundError, потому что он не может найти этот класс в файле .jar, который генерируется.

Я использую Eclipse и Maven. Все другие классы в том же проекте, кажется, компилируются просто отлично, и Google и Stack Overflow не дали никаких подсказок.

Код класса выглядит следующим образом:

public class DownstreamSystemFailureException extends Exception {

private static final long serialVersionUID = -5124591997847109725L;
@SuppressWarnings("unused")
private String systemDescription = null;
@SuppressWarnings("unused")
private Exception innerException = null;

public DownstreamSystemFailureException( String systemDescription, Exception innerException )
{
    this.systemDescription = systemDescription;
    this.innerException = innerException;
}

}

Ответы [ 2 ]

0 голосов
/ 03 февраля 2011

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

0 голосов
/ 01 февраля 2011

Попробуйте создать банку с помощью другого инструмента ...

...