あらすじ
- 同じワークスペース上にあるsampleプロジェクトからutilプロジェクトのメソッドを呼び出しているソースがある
- ビルドは通っているが、実際に該当ロジックを動作させた時に
ClassNotFoundException
あるいはNoClassDefFoundError
が出る
環境
- Eclipse 4.7
- WAS Liberty 19.0.0.1
本文
- ビルド・パスを通しただけだったのでWTP起動時に依存プロジェクトを一緒に配備できていなかった
- プロジェクト右クリック -> プロパティ -> デプロイメント・アセンブリー(Deployment Assembly)
- 呼び出し先のプロジェクトを追加する。(古いEclipseだとJava EE Module Dependencies)
- ビルドして再び実行するとうまくいった。
- sampleプロジェクトの.projectファイルに以下の値が追加されていた。
<projects>
<project>util</project>
</projects>
- 「問題」タブには警告は出てない(多すぎてカットされている?)
- 「マーカー」タブには警告がバッチリ出てた
クラスパス・エントリー /util は、エクスポートまたは公開されません。実行時に ClassNotFoundExceptions が発生する可能性があります。 sampleP/sampleクラスパス依存性バリデーター・メッセージ