2011-02-01 21 views
1

我創建了一個非常簡單的自定義類,它擴展了Exception,下面列出的代碼。我遇到的問題是,這個特定的類沒有被編譯到一個.class文件中(在build/classes目錄以及該項目的jar文件中)。所有其他類都被編譯爲.class文件並按預期打包到.jar文件中。自定義異常類未被編譯到.class文件中

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

是不是在src樹中的異常的.java文件?它在一個奇怪的地方嗎?或者你的構建是否通過模式創建了不包含它的jar? – hvgotcodes 2011-02-01 19:17:43

回答

0

嘗試使用不同的工具來創建你的罐子...

0

確保您已聲明在您的自定義異常的頂部package。不建議使用默認的類包,並且在jar中找到它們會很麻煩。