1

クラスを使用していますDeferredTextImplが、eclipseはそれについて文句を言っていないようですが、プロジェクトを実行すると実行時例外が発生します.... Class not found exception for DeferredTextImpl ..

クラスファイルを検索したところrt.jar、クラスパス上にあるはずのファイルが見つかりました。プロジェクトのビルドパスも確認したproperties->Java build pathところ、一番下にJREシステムライブラリが表示されていました。私がそれを拡大したとき。見えrt.jarた。つまり、クラスパス上にあるということですよね?

なぜこのエラーが発生するのですか?

4

5 に答える 5

3

コードを実行するときの Eclipseのビルド パスとクラスパスには違いがあります。ビルド パスは、コードのコンパイルに使用されます。クラスパスは、アプリケーションが実行時に持つものです。

ビルド パスは、[プロジェクト] -> [プロパティ] -> [Java ビルド パス]で構成されます。

クラスパスは、実行 -> 実行構成 ->クラスパスで構成されます

あなたの場合、実行構成の下のJREタブがビルドパスと同じJREを指しているかどうかも確認する必要があります(他の人が言及したように)。

于 2012-05-14T12:56:19.877 に答える
1

ランタイムとコンパイル時のクラスの Xerces jar のバージョンを確認します。実行時に Xerces2 jar があることを確認してください。rt.jar 内のクラスが、アプリケーションが探しているクラスと同じであるとは思えません。

于 2012-05-14T12:56:09.220 に答える
1

This class is part of a specific DOM implementation (Apache Xerces). It's not part of the public Java API, and if you do in fact find it in one JVM's runtime class library, this is no guarantee it'll be in others. If you need to explicitly work with Xerces, then you need to explicitly include the Xerces libraries on your runtime class path.

于 2012-05-14T12:56:48.970 に答える
1

コードの実行中に -jar オプションを使用して明示的に rt.jar を追加して、コードを実行してみてください。これが機能する場合、Eclipse の rt.jar がクラスパスにないことを意味します。

于 2012-05-14T12:58:39.890 に答える
0

プロジェクトを右クリック> Javaビルドパス>ライブラリはJREを削除し、私の場合はC:\ Program Files\Java\jdk1.7.0_55であるJDKフォルダを指すライブラリを追加します。ただし、その前に、Java がインストールされた JRE でも同じことを行います。Windows > Java > インストール済みの JRE 。これが役立つことを願っています

于 2014-05-19T16:38:01.313 に答える