16

この例外が発生しましたが、解決しました。

java.lang.NoSuchMethodError: antlr.NoViableAltForCharException.<init>
(CLjava/lang/String;II)V

しかし、これらの種類のメッセージを解釈する方法を知りたい: "(CLjava/lang/String;II)V" また、この "init" は NoViableAltForCharException クラスのコンストラクターについて言及していますか??

ありがとう。

4

4 に答える 4

31

タイプ署名 -このページから取得。

JNI は、型シグネチャの Java VM の表現を使用します。表 3-2 は、これらの型シグネチャを示しています。

Z                               boolean
B                               byte
C                               char
S                               short
I                               int
J                               long
F                               float
D                               double
L fully-qualified-class ;       fully-qualified-class
[ type                          type[]
( arg-types ) ret-type          method type

たとえば、Java メソッドは次のようになります。

long f (int n, String s, int[] arr);

次の型シグネチャがあります。

(ILjava/lang/String;[I)J
于 2011-12-01T15:21:28.783 に答える
8

コンストラクターを探してantlr.NoViableAltForCharException(char, String, int, int)いますが、クラスで見つかりません。

<init>メソッドはコンストラクターであり、メソッド<cinit>は静的初期化ブロックです。パラメータタイプは@gkamalによってリストされ、追加Vはvoidです。概念的には、コンストラクターが戻ります。これが、署名の最後にあるvoid理由です。V

ところで:それが長い間そしてJavaクラスのためであったかもしれないとき、それはおそらくJ長い間そしてLクラスのためであるというのは皮肉です。;)LJ

于 2011-12-01T15:15:12.343 に答える
2

タイプのドキュメントを参照してください。便利な略記です。

于 2011-12-01T15:16:32.137 に答える
0

サーバー上に古い .jar ファイルと、コードをコンパイルしているものがある可能性があります。サーバー上のすべての .jar ファイルが、コンパイルに使用したものと同じであることを再確認してください。

于 2017-09-12T16:05:04.463 に答える