2012-03-15 14 views
0

私のプロジェクトにはgif4jスイートが必要です。だから私はクラスパスを "C:... \ gif4j_pro_trial_2.3.jar"に設定しています。クラスパスの値が複数ある場合は、それらをセミコロンで区切ります。私もそれをしました。しかし、私はまだファイルを実行するときにこのエラーが発生しています。クラスパスが機能しません

Exception in thread "AWT-EventQueue-0" java.lang.Error: Unresolved compilation problems: 
    The import com.gif4j.TextPainter cannot be resolved 
    The import com.gif4j.Watermark cannot be resolved 

私はコードを書いたものではないですので、私は本当にここで何が起こっているのか理解していません。私は何が欠けていますか?

+0

あなたは、クラスパスを設定した後、再びURコードをコンパイルしようとしましたか? –

+0

私はWindowsコントロールパネルを意味しました@Andreas_D –

+0

@AshwiniRamanいいえ、私はありませんでした!違いは違いますか? –

答えて

1

このエラーは、ランタイムでgif4jクラスが見つからないということについては何も言いません。代わりに、のコードがでコンパイルされているとき、それらのクラスは利用できませんでした。 javacはこれらの種類のエラーを生成しません(単にコンパイルできない)ので、このコードがEclipseによってコンパイルされたと仮定しています。その場合は、Eclipseプロジェクトの構成をチェックして、gif4jライブラリが適切に含まれていることを確認する必要があります。

+0

私はプロジェクトがEclipseでコンパイルされたと思います。しかし、私はそれを初めて知っているので、どこを確認するか分からない。だからとにかく、あなたが言っているのは、ライブラリを適切に組み込み、コードをもう一度コンパイルしなければならないということです。クラスパス変数の設定について気にする必要はありませんか? –

+0

はい、ライブラリを適切に組み込み、コードを再度コンパイルする必要があります。おそらくコードを実行するためにclasspath変数を設定する必要もありますが、コードが正しくコンパイルされるまで、そのことは分かりません。 –

1

throw new Error(..()ステートメントはeclipseによって作成されました。 eclipseはメソッドのコンパイル時のエラーのためにクラスをコンパイルできないときはいつでも、それらのメソッドのスタブを作成しようとします。だから常にソースコードにエラーがあっても、クラスファイルを見つけるでしょう。

このような方法(例)のようになります。それは実際にあなたの元に存在しません

public long calculate(long a, long b) { 
    throw new Error("Unresolved compilation problems"); // + additional information 
} 

、それが唯一のバイトコードレベルで作成されています。

あなたのプロジェクトでエラーマーカーが無視され、binフォルダ内のクラスファイルを使用しようとした可能性があります。実行時にこの問題を修正することはできません。正しくコンパイルされたクラスを作成するようにプロジェクトを修正しました。

関連する問題