我创建了一个非常简单的自定义类,它扩展了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;
}
}
答案 0 :(得分:0)
尝试使用其他工具创建jar ...
答案 1 :(得分:0)
确保您已在自定义例外的顶部声明package
。建议不要使用类的默认包,否则您将无法在jar中找到它们。