2011-02-01 12 views
1

私は非常にシンプルなカスタムクラスを作成しました。私が実行している問題は、この特定のクラスが.classファイル(ビルド/クラスディレクトリ内、およびプロジェクトの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

+0

上手く見えますが、私はsuper(innerException)を呼び出します。別々に保存するのではなく、 eclipseを使用すると、プロジェクトで「クリーン」を実行して、欠落した.javaファイルを取得する必要が生じることがあります。 –

+0

いいえ、それはちょうどうまくコンパイルされている他のファイルのすぐ隣に座っています。ビルドは何も排除するものではありませんが、「Foo」に完全に名前を変更して、同じ結果を得ていることを確認するだけです。しかし、良いアイデア、ありがとう。 –

答えて

0

は別のツールを使用してjarファイルを作成してみてください...

0

は、カスタム例外の上部にpackageを宣言していることを確認します。クラスのデフォルトパッケージを使用することはお勧めできません。