0

私はMavenプロジェクトを持っています。プロジェクトを実行すると、エラーが発生します。エラーの原因は

Caused by: java.lang.NoSuchMethodError: org.w3c.tidy.Tidy.setHideComments(Z)V

Mavenリポジトリにjarがない可能性があると思いました。しかし、私はそのリポジトリでjarを見つけました。

私は持っていますjtidy-4aug2000r7-dev.jar at C:\.m2\repository\jtidy\jtidy\4aug2000r7-dev

誰かが問題の考えられる理由を教えてもらえますか?

4

3 に答える 3

1

問題はのバージョンにあると思いjtidy.jarます。あなたが言及した現在のバージョンはかなり古いです(2000年8月4日)。

私はバージョンをグーグルで検索し、 API4aug2000r7-dev.jarを見つけました 。

Tidy.javasetHideComments()にメソッドが表示されません

同じjarの複数のバージョンがないことを確認してください。

JTidy 8.0-SNAPSHOT ここで試してください。メソッドが含まれています。

于 2013-01-31T12:03:52.330 に答える
1

ANoSuchMethodErrorは、JVMがロードしたバージョンのBに存在しないクラスBのメソッドを必要とするAクラスをロードしたときに発生します。この場合、JVMは署名を持つ非プライベートメソッドを見つけることを期待していますvoid setHideComments(boolean)...しかし、それはありません。

一般的な原因は3つあります。

  • Bのメソッドを変更または削除し、B...を再コンパイルしましたがAも再コンパイルしていません。

  • 一部のライブラリJARファイルのバージョンが間違っています。たとえば、Aを含むJARは、依存関係としてリストしたものとは異なるバージョンのBを含むJARに依存しています。

  • 前のものの変形は、どういうわけか、実行クラスパス上にいずれかのJARファイルの2つのバージョンがあることです。

jtidyを変更していないと仮定すると、最初の説明は適用されません。

于 2013-01-31T12:05:55.267 に答える
0

ほとんどの場合、jarファイルはかなり古く(2000年8月4日)、それらのメソッドが後で追加された可能性があります。この瓶を使ってみてください

于 2013-01-31T12:01:46.823 に答える