学校での割り当てには、あらかじめ定義されたものを実装するクラスBlender
を作成する必要があります。私はimagecompositor.jar
のJARファイルを受け取り、すべてを行い、Blender
クラスを使用します。 JARファイルには2つのクラス(ImageCompositor.class
とStDraw.class
)が含まれています。プログラムを実行するにはJava NoClassDefFoundError
、先生は、私は次のことを実行する必要があると言う:
java -cp ... ass3.ImageCompositor img1 img2 offsetx offsety
私はJavaのコーディングする方法を知っています。外部クラスをJARファイルに読み込む方法がわかりません。
java -cp imagecompositor.jar ass3.ImageCompositor img1.png img2.png 0 0
が、それは
NoClassDefFoundError
を投げた:だから私はこれを試してみました
Exception in thread "main" java.lang.NoClassDefFoundError: ass3/Blender
at ass3.ImageCompositor.main(ImageCompositor.java:113)
Blender
クラスがそれに行package ass3
を持っています。私は間違って何をしていますか?
あなたがクラスパスにあなたのBlender
クラスを追加する必要があります
ImageCompositorの113行目はどうなっていますか? java.lang.NoClassDefFoundErrorは通常、いくつかの静的コンストラクターが失敗します。 stacktraceをもっと理解するためには、ImageCompositorのコンストラクターチェーンが何を作るかを理解する必要があります。 –
私たちは割り当てのソースコードを取得しません。私たちはjarファイルしか取得しないので、そこで何が起こるかは分かりません。しかし、おそらくBlender blender =新しいBlender()です。 Blenderのクラス定義が見つからないという不満がある場所です。 – Fatso
例外メッセージはどこで確認できましたか?一般的にスタックトレースはその直後に出てきます。 –