AWTとSwingのペイント(paint)の仕組み Java API javadoc改善運動! Javaの手帖 Javaの手帖--GUI分冊 /ひとつ上をゆくJavaの教科書 「JavaServer Faces完全ガイド」補遺
javacのエラーメッセージ解説 「Javaの哲学」の恥かき 「Javaによるテキスト処理」の恥かき 「モア・サーブレット」の恥かき 恥かきのホームページ フォーラム「JavaBeginner」
UIDefaultsのkeyとデフォルト値「コア・サーブレット」の恥かき comp.lang.java.guiのFAQ日本語訳 「入門 正規表現」 「Javaネットワークプログラミングの真髄」 「Java並行処理プログラミング」

J2SE 1.4対応(1.5は[こちら]を)
(本文書でJLS(Java Language Specification)への言及は、第二版を指しています。)


last update: 15 Apr. 2006
日英対照javacのエラーメッセージ解説つき


03/11/12 改訂&大幅増補
03/11/13 書式整形
03/11/14 解説をやや充実
03/11/18 前処理プログラムのメッセージを追加
03/11/20 解説をやや充実
03/11/24 エラーメッセージの事例コレクション欄を設置
03/12/02 解説をやや充実
04/03/25 解説をやや充実
04/04/08 クイズ欄を新設
04/10/08 事例をやや充実
05/07/11 解説をやや増強
06/04/15 return文エラーについて解説
07/10/13 dereference/‘間接参照’について解説
08/03/12 到達不可能文(実行されない文)に関するクイズを新設


●コンパイラのエラーメッセージを初心者が理解するための重要なポイントが、二つあります:

(1)実際のエラー箇所から遠く離れた場所を指摘されることが--非常に頻繁に!--ある。典型的な例を、以下の[9:]の解説で見てください。

(2)実際のエラーとは全然違うエラーを指摘されることが--けっこう頻繁に--ある。たとえば変数にアクセスする文の末尾に;がないと、その次の文と一体的に何かの宣言であると解釈され、「無効なタイプ」など、宣言関係のエラーメッセージが出ることがあります。
  違うエラーを指摘された、単純な例が、たとえば[これ]です。

※たった一つのエラー箇所から、二つも三つものエラーメッセージが出ることも、よくありますから、あまり深刻に悩まずに、一つの間違いを直したらとりあえず再コンパイルしてみましょう。多くのエラーメッセージが、一挙に消えることもあります。

  また、メソッドの中に書くべき文をメソッドの外に書いていると、「メソッドがない」ではなく、より分かりにくい「名前(identifier)がない」というメッセージを食らいます。
  そのほか、よくある例として、下の133:の解説を見てください。

★極端なエラーメッセージの[例(1)], [例(2)], [例(3)]

[クイズ]に挑戦してみましょう。




  1: 'break'はループ内かswitch文内になければなりません。('break' must be in loop or switch.)

  2: 'break'文および'continue'文は同一メソッド内にのみ分岐できます。(a 'break' or 'continue' must transfer control within the same method.)

  3: 'catch'への'try'がありません。('catch' without 'try'.)

  4: 'continue'はループ内になければなりません。('continue' must be in loop.)

  5: 'default'ラベルが重複しています。(Duplicate 'default' label.)

  6: 'else'への'if'がありません。('else' without 'if'.)

  7: 'finally'への'try'がありません。('finally' without 'try'.)

  8: 'try'への'catch'または'finally'がありません。('try' without 'catch' or 'finally'.)

  9: 'xxx'がありません。('xxx' expected.)
【解説】xxxは;や), }など。たとえば、こんな文があると:
    result = myMethod(foo, bar) 
if (!result){
... }
  この「;がありません」というエラーメッセージが指摘するエラー箇所はbar)の直後ではなくて、ifの直前になります。「あるべきところ(あってもよいところ)をすべて調べたが、最後までなかった」…これが、javacのエラー検出動作の基本パターンです。だから、ものすごく遠くの場所を'^'で指されて、初心者の脳は???になってしまうこともあります。
  そのほかのエラーメッセージについても、このことに注意しましょう。


 10: 'xxx'はサポートされていません。('xxx' not supported.)

 11: 16進数字は少なくとも1桁の16進数を含まなければなりません。(Hexadecimal numbers must contain at least one hexadecimal digit.)

 12: 8進数字が無効です。(Invalid character in octal number.)

 13: []は配列にのみ適用できます。xxxには適用できません。([] can only be applied to arrays. It can't be applied to xxx.)

 14: [xxxミリ秒で完了]([done in xxx ms])

 15: [xxxをyyyミリ秒で処理しました]([parsed xxx in yyy ms])

 16: [xxxをyyyミリ秒で読み込みました]([loaded xxx in yyy ms])

 17: [ソースクラスパスは'xxx'です]
[ライブラリクラスパスは'yyy'です]
([The source classpath is 'xxx']
[The library classpath is 'yyy'])

 18: [書き込みxxx]([wrote xxx])

 19: -Xdepend 再コンパイルのためのさらに新しいファイルを再帰的に検索する
     -Xstdout メッセージをSystem.outに送る
     -Xverbosepath パスと標準拡張機能の検索方法を記述する
     -J 引数をJavaインタープリタに渡す

-Xおよび-Jオプションは標準ではなく、予告なしに変更される可能性があります。

( -Xdepend Recursively search for more recent source files to recompile
  -Xstdout Send messages to System.out
  -Xverbosepath Describe how paths and standard extensions were searched
  -J Pass argument to the java interpreter

The -X and -J options are non-standard and subject to change without notice.)

 20: abstractメソッドxxxをfinalとすることはできません。(Abstract methods can't be final: xxx)

 21: abstractメソッドxxxをnativeとすることはできません。(Abstract methods can't be native: xxx)

 22: abstractメソッドxxxをprivateとすることはできません。(Abstract methods can't be private: xxx)

 23: abstractメソッドxxxをstaticとすることはできません。(Abstract methods can't be static: xxx)

 24: abstractメソッドxxxをsynchronizedとすることはできません。(Abstract methods can't be synchronized: xxx)

 25: caseラベルxxxが重複しています。(Duplicate case label: xxx)

 26: caseラベルxxxは型yyyのswitch文の範囲を越えています。(Case label xxx too large for 'switch' on yyy)

 27: final変数xxxに値を代入することはできません。(Can't assign a value to a final variable: xxx)

 28: final変数xxxは初期化されなければなりません。(This final variable must be initialized: xxx)

 29: nullのリテラルは、synchronized構文では正しい引数ではありません。(The null literal is not a legal argument for the synchronized statement.)
【解説】正しくは、「nullリテラルはsynchronized文の正しい引数ではありません」。引数は実在するオブジェクトでなければなりません。
synchronized(null){ // nullリテラル
  ...
}
がだめなだけではなく、もちろん、
synchronized(x){
  ...
}
でxがnullでもだめです。

 30: publicなクラスxxxは、ファイル'yyy'で定義されなければなりません。(Public xxx must be defined in a file called 'yyy'.)
【解説】これは、public class FooはFoo.javaという名前のファイルで定義しろ、ということです。ひとつの.javaファイル内に複数のクラス定義(メンバクラスではなく独立のクラス)があって、それらの中にpublic classが二つ以上あるときも、このエラーメッセージが出ます。ひとつのソースファイル(.javaファイル)の中にpublic classはいちばん上のひとつのみ、と決められています(JLS 8.1.1)。

 31: staticブランクfinalへの代入に使用する変数は単純名でなければなりません(ドット"."が付いてはいけません)。(The variable in an assignment to a static blank final must be a simple name (it may not follow a dot ".").)
【解説】ブランクfinalは、初期化文のないfinalフィールド宣言。代入する値がほかのクラスやオブジェクトの変数名であれば、final性が保証されません。

 32: static初期化子の中に'return'があります。('return' inside static initializer.)
【解説】スタティックイニシャライザは、クラスがロードされるときにやってほしいことを、こんなものの中に書きます:

    static { ..... }


 33: switch文の外に'case'があります。('case' outside switch statement.)

 34: switch文の外に'default'があります。('default' outside switch statement.)

 35: throws節の例外xxxはクラスjava.lang.Throwableのサブクラスでなければなりません。(xxx in throws clause must be a subclass of class java.lang.Throwable.)
【解説】‘例外xxx’、英文では単にxxxです。つまり、ここでエラーを指摘されているxxxは例外(Exceptionオブジェクト)とはかぎりません。

 36: transient変数xxxをインタフェースメンバとすることはできません。(Transient variables can't be members of interfaces: xxx)

 37: voidの配列の型が無効です。(Array of void is not a valid type.)
【解説】voidの配列は、無効な(現在のJavaがサポートしていない)タイプです。

 38: volatile変数xxxをfinalまたはインタフェースメンバとすることはできません。(Volatile variables can't be final or members of interfaces: xxx)

 39: xxx(xxx)
【解説】これは、任意の(不定の)メッセージのためのプレースホールダーです。

 40: xxxおよびyyyのクラス定義があいまいです。(Ambiguous class: xxx and yyy)
【解説】両クラスの内容・構造が同一です。

 41: xxxからyyyへのキャストが無効です。(Invalid cast from xxx to yyy.)

 42: xxxが書き込めません。(Can't write: xxx)

 43: xxxが読み込めません。(Can't read: xxx)

 44: xxxで入出力エラーが発生しました。(I/O error in xxx.)

 45: xxxにアクセスできません。クラスまたはインタフェースは、同じパッケージまたはアクセス可能なメンバクラスではpublicでなければなりません。(Can't access xxx. Class or interface must be public, in same package, or an accessible member class.)
【解説】これは、英文のほうを見るとよく分かります(合法ケースを3つ--(1)そのクラスやインタフェイスがpublicである、(2)それらにアクセスしようとするオブジェクトのクラスが属しているパッケージ…無名のデフォルトパッケージの場合も含む…と同じパッケージに属している、(3)それらが、このオブジェクトのクラスの、アクセス可能なメンバクラスまたはメンバインタフェイスである--列挙しています)。

 46: xxxに適合するコンストラクタがyyyにはありません。(No constructor matching xxx found in yyy.)

 47: xxxに適合するメソッドがyyyにはありません。(No method matching xxx found in yyy.)

 48: xxxのprotectedコンストラクタにはアクセスできません。インスタンスの生成は、コンストラクタが定義されているパッケージ内でのみ許可されます。(Can't access protected constructor of xxx. Instance creation is permitted only within the package in which the constructor is defined.)

 49: xxxのクラスファイルyyyの形式が無効です。(Invalid class file format in xxx. yyy)

 50: xxxのスーパークラスyyyをインタフェースとすることはできません。(Superclass of xxx can't be an interface: yyy)

 51: xxxのメソッドを呼び出すことはできません。(Can't invoke a method on a xxx.)

 52: xxxのラベル定義が見つかりません。(No label definition found for xxx.)

 53: xxxの引数の数が不正です。(Wrong number of arguments in xxx.)

 54: xxxはabstractとして宣言されなければなりません。スーパークラスzzzのパッケージに対してprivateであるabstractメソッドyyyはアクセスできず、オーバーライドできません。(xxx must be declared abstract. The package-private abstract method yyy in superclass zzz is inaccessible and cannot be overridden.)
【解説】正しくは:xxxはabstractとして宣言されなければなりません。スーパークラスzzz内の抽象メソッドyyyはパッケージ内部からしかアクセスできないので、ここではオーバライドできません。
  同一パッケージに属するクラスを書けば/書ければ、このような場合のオーバライドはOKです。

 55: xxxはabstractクラスです。インスタンスを生成することはできません。(xxx is an abstract class. It can't be instantiated.)

 56: xxxはabstractクラスでなければなりません。このクラスでは、zzzから派生するyyyを定義していません。(xxx must be declared abstract. It does not define yyy from zzz.)
【解説】たとえばabstractクラスをextendsしたクラスの中でスーパークラスのabstractメソッドを実装することを忘れていたとき(==暗黙裡にabstractのまま継承しているとき)などに、このエラーメッセージを食らいます。

 57: xxxはabstractメソッドかnativeメソッドなので、本体を持つことはできません。(Abstract and native methods can't have a body: xxx)

 58: xxxはyyyで定義されていますが、このソースファイル外で利用されているので、ファイル'zzz'で定義する必要があります。(xxx is defined in yyy. Because it is used outside of its source file, it should be defined in a file called 'zzz'.)
【解説】xxxクラスをyyy.javaの中で定義すると一般的に外から利用できないから、xxx.javaファイルでpublicクラスとして定義せよ、ということです。つまり'zzz'は'xxx.java'です。

 59: xxxはyyyのインスタンスにはなりません。(Impossible for xxx to be instance of yyy.)

 60: xxxはインタフェースです。インスタンスを生成することはできません。(xxx is an interface. It can't be instantiated.)

 61: xxxはインタフェースでなければなりません。(xxx must be an interface.)

 62: xxxはクラスかパッケージかの区別がつきません。(Ambiguous name: xxx is both a class and a package.)

 63: xxxは未定義なクラスまたはパッケージ名です。(Undefined class or package name: xxx)

 64: xxxは未定義なクラス名です。(Undefined class name: xxx)

 65: xxxは未定義な変数、クラス、またはパッケージ名です。(Undefined variable, class, or package name: xxx)

 66: xxxは未定義な変数です。(Undefined variable: xxx)

 67: xxxは未定義な変数です。キーワード'super'は、メンバのアクセスまたはコンストラクタの呼び出しにのみ使用できます。(Undefined variable: xxx. The 'super' keyword may only be used for member access and constructor invocation.)

 68: xxxは未定義な変数またはクラス名です。(Undefined variable or class name: xxx)

 69: xxxは未定義な変数またはパッケージ名です。(Undefined variable or package name: xxx)

 70: xxxは無効なオプションまたは引数です。(xxx is an invalid option or argument.)

 71: xxxへの引数が無効です。(Invalid argument to xxx.)

 72: xxxへの引数が無効です。(Invalid arguments to xxx.)

 73: xxxへの参照はあいまいです。yyyとzzzに定義されています。(Reference to xxx is ambiguous. It is defined in yyy and zzz.)

 74: xxxを含むクラスファイルに書式が不正な属性'yyy'があります。(The class file containing xxx has a malformed 'yyy' attribute.)

 75: xxxオプションには引数が必要です。(The xxx option requires an argument.)

 76: xxxオプションの形式が正しくありません。指定できるのはlines、vars、sourceだけで、コンマで区切ります。(The xxx option is not well formed. Only specify 'lines', 'vars', and 'source' separated by commas.)

 77: xxxオプションは1回しか指定しません。(The xxx option may be specified no more than once.)

 78: xxx型への初期化子が無効です。(Invalid initializer for type xxx.)

 79: yyyからフィールドxxxを参照しようとしました。(Attempt to reference field xxx in a yyy.)

 80: yyyから継承されたメソッドxxxは、zzzから継承された同じシグニチャーのメソッドと互換性がありません。同じ型の戻り値を持たなければなりません。(The method xxx inherited from yyy is incompatible with the method of the same signature inherited from zzz. They must have the same return type.)

 81: yyyではxxxに前方参照することはできません。(Can't make forward reference to xxx in yyy.)

 82: yyyで宣言されたstaticメソッドxxxは、zzzで宣言された同じシグニチャーのインスタンスメソッドを隠すことができません。インスタンスメソッドを覆い隠すのは無効です。(The static method xxx declared in yyy cannot hide the instance method of the same signature declared in zzz. It is illegal to hide an instance method.)

 83: yyyで宣言されたインスタンスメソッドxxxは、zzzで宣言された同じシグニチャーのstaticメソッドをオーバーライドできません。staticメソッドをオーバーライドするのは無効です。(The instance method xxx declared in yyy cannot override the static method of the same signature declared in zzz. It is illegal to override a static method.)

 84: yyyで宣言されたメソッドxxxは、zzzで宣言された同じシグニチャーのファイナルメソッドをオーバーライドできません。ファイナルメソッドはオーバーライドできません。(The method xxx declared in yyy cannot override the final method of the same signature declared in zzz. Final methods cannot be overridden.)

 85: yyyで宣言されたメソッドxxxは、zzzで宣言された同じシグニチャーのメソッドをオーバーライドできません。それらのthrows節には互換性がありません。(The method xxx declared in yyy cannot override the method of the same signature declared in zzz. Their throws clauses are incompatible.)

 86: yyyで宣言されたメソッドxxxは、zzzで宣言された同じシグニチャーのメソッドをオーバーライドできません。アクセス修飾子はさらに制限されて作成されます。(The method xxx declared in yyy cannot override the method of the same signature declared in zzz. The access modifier is made more restrictive.)

 87: yyyで宣言されたメソッドxxxは、zzzで宣言された同じシグニチャーのメソッドをオーバーライドできません。同じ型の戻り値を持たなければなりません。(The method xxx declared in yyy cannot override the method of the same signature declared in zzz. They must have the same return type.)

 88: yyyで宣言されたメソッドxxxは推奨されないものではありませんが、zzzで宣言された同じシグニチャーの推奨されないメソッドをオーバーライドします。(The method xxx declared in yyy is not deprecated, but overrides a deprecated method of the same signature declared in zzz.)

 89: yyyとzzzから継承されたメソッドxxxの定義は互換性がありますが、それらの組み合わせは影響が大きいため実装されていません。回避方法としては、このクラスで明示的にxxxを宣言してください。(The definitions of method xxx inherited from yyy and zzz are compatible, but the combination of them is nontrivial and has not been implemented. As a workaround, declare xxx explicitly in this class.)

 90: yyyには変数xxxは定義されていません。(No variable xxx defined in yyy.)

 91: yyyに対して名前xxxは不正です。(Invalid name xxx for yyy.)

 92: yyyに対する引数の型xxxが無効です。(Invalid argument type xxx for yyy.)

 93: yyyのprotectedフィールドxxxにはアクセスできません。zzzは現在のクラスのサブクラスではありません。(Can't access protected field xxx in yyy. zzz is not a subclass of the current class.)

 94: yyyのprotectedメソッドxxxにはアクセスできません。zzzは現在のクラスのサブクラスではありません。(Can't access protected method xxx in yyy. zzz is not a subclass of the current class.)

 95: yyyのprotected内部型xxxにはアクセスできません。zzzは現在のクラスのサブクラスではありません。(Can't access protected inner type xxx in yyy. zzz is not a subclass of the current class.)

 96: yyyのインタフェースxxxが見つかりません。(Interface xxx of yyy not found.)

 97: yyyのスーパークラスxxxが見つかりません。(Superclass xxx of yyy not found.)

 98: yyyのメソッドxxxにstatic参照することはできません。(Can't make static reference to method xxx in yyy.)
【解説】関連解説がここに。

 99: yyyのメソッドxxxはabstractであり、直接呼び出すことはできません。(Can't directly invoke abstract method xxx in yyy.)

100: yyyのメソッドxxxはzzzからはアクセスできません。(Method xxx in yyy is not accessible from zzz.)

101: yyyのメソッドxxxを変数として参照しようとしました。(Reference to method xxx in yyy as if it were a variable.)

102: yyyの変数xxxをメソッドとして参照しようとしました。(Reference to variable xxx in yyy as if it were a method.)

103: yyy内のstaticでない変数xxxをstatic参照することはできません。(Can't make a static reference to nonstatic variable xxx in yyy.)
【解説】関連解説がここに。

104: yyy内のメソッドxxxをインスタンス変数として参照しようとしました。(Attempt to reference method xxx in yyy as an instance variable.)

105: yyy内の内部型xxxはzzzからはアクセスできません。(Inner type xxx in yyy not accessible from zzz.)

106: yyy内の変数xxxはzzzからはアクセスできません。(Variable xxx in yyy not accessible from zzz.)

107: このcatch節に制御が移ることはありません。(catch not reached.)

108: このコードは64Kバイトを超えるサイズのメソッドの生成を必要とします。VirtualMachineは生成されるクラスファイルを拒否します。(This code requires generating a method with more than 64K bytes. Virtual machines may refuse the resulting class file.)

109: このソースファイルのエンコーディングがプラットフォームのものと異なっている可能性があります。-encodingオプションを指定してファイルのエンコーディングを指定するか、あるいはnative2asciiユーティリティを使用してソースコードをASCII文字だけにしてください。(The source file encoding may be different with this platform encoding. Please use -encoding option to adjust file encoding, or apply native2ascii utility to make source file ASCII encoding.)

110: この型はxxxには不適合です。yyyからzzzには変換できません。(Incompatible type for xxx. Can't convert yyy to zzz.)

111: この型はxxxには不適合です。yyyからzzzへの変換には明示的なキャストが必要です。(Incompatible type for xxx. Explicit cast needed to convert yyy to zzz.)

112: この文に制御が移ることはありません。(Statement not reached.)
【解説】“制御が移る”という日本語を奇異に感じる人は、英文のほうがよく分かるでしょう。絶対に実行されない文(return;のあとに書かれている文、最後のelse節でbreak;しているのにそのあとにさらに書かれているループ内の文、など)を、このエラーメッセージは指摘しています。
 ここでクイズを:次のコードの二つめのforループに対して「この文に制御が移ることはありません」のエラーが出ます。なぜでしょう?。

int[] a = new int[10];
Random rand = new Random();
for (int i = 0; 1 < 1000; ++i){
  a[rand.nextInt(10)]++;
}
for (int j = 0; j < 10; ++j){
  System.out.println(a[j]);
}
なお、実は、最初のforループの直後に文がどんな文でも、それに対し「この文に制御が移ることはありません」のエラーが出ます。

113: インスタンス変数xxxをvoid型にすることはできません。(Instance variables can't be void: xxx)

114: インタフェースxxxからサブクラスを生成することはできません。(Can't subclass interfaces: xxx)

115: インタフェースxxxが繰り返されています。(Interface xxx repeated.)

116: インタフェースxxxをファイナルとすることはできません。(Interfaces can't be final: xxx)

117: インタフェースのフィールドxxxをprivateまたはprotectedとすることはできません。(Interface fields can't be private or protected: xxx)

118: インタフェースのメソッドxxxをnative、static、synchronized、final、private、またはprotectedとすることはできません。(Interface methods can't be native, static, synchronized, final, private, or protected : xxx)
【解説】アクセス指定子(private, protected, public)をなにも書かないと、通常ならデフォルトアクセス(JLS 6.6.1, 6.6.5)と解釈されますが、インタフェイスのメソッドは、アクセス指定子が書かれていないとpublicと見なされます。

119: インタフェースはimplements節を含むことはできません。extends節により他のインタフェースを拡張することはできます。(An interface can't implement anything; it can only extend other interfaces.)

120: インタフェースはstatic初期化子を持つことはできません。(Interfaces can't have static initializers.)

121: インタフェースはコンストラクタを持つことはできません。(Interfaces can't have constructors.)

122: インタフェース継承がループしています。(Cyclic interface inheritance.)

123: エスケープ文字が無効です。(Invalid escape character.)

124: エラー1個(1 error)

125: エラーxxx個(xxx errors)

126: エラー数が上限を超えました。(報告するエラーの上限はxxxです。)(Too many errors. (The limit on reported errors is xxx.))

127: オプションxxxとyyyは同時には使用しません。(The options xxx and yyy may not be used at the same time.)

128: キーワード'class'または'interface'がありません。('class' or 'interface' keyword expected.)

129: クラスxxxがyyyに見つかりません。(Class xxx not found in yyy.)

130: クラスxxxが見つかりません。(Class xxx not found.)

131: クラスxxxはすでにyyyで定義されています。(Class xxx already defined in yyy.)

132: クラスxxxをabstractとfinalの両方に宣言することはできません。(Class xxx can't be declared both abstract and final.)

133: クラスまたはインタフェース宣言がありません。(Class or interface declaration expected.)
【解説】これはいろんなときに出るエラーメッセージですが、実際に、クラスやインタフェイスが必要なのにその場所にない、というケースはまれです。メソッド定義の、ちょっとしたタイプミス(たとえば必要なスペースがなくて2つの名前やキーワードがくっついている場合など)が原因でこのエラーが出ることもあります。なにしろ、このエラーを食らったら、“真の理由”を調べましょう。

134: クラスパス:xxxを閉じることができませんでした。(failed to close class path: xxx)

135: クラスファイルxxxの読み込み中に予期しないファイルの終わりが検出されました。(Unexpected end of file encountered while reading the class file xxx.)

136: クラス継承がループしています。(Cyclic class inheritance.)

137: クラス継承がループしています。サブクラスはスーパークラスを囲むことはできません。(Cyclic class inheritance: A subclass cannot enclose a superclass.)

138: クラス継承またはスコープがループしています。(Cyclic class inheritance or scoping.)

139: クラス名'xxx'はすでにこのスコープ内で定義されています。内部クラスはそれを囲むクラスと同じ単純名を持つことはできません。(The class name 'xxx' is already defined in this scope. An inner class may not have the same simple name as any of its enclosing classes.)

140: クラス名xxxはインポートされたクラスyyyと競合します。(Class name xxx clashes with imported class yyy.)

141: コメントが入力の最後で終了していません。(Comment not terminated at end of input.)

142: コンストラクタxxx,yyyはあいまいです。(Constructor is ambiguous: xxx, yyy)

143: コンストラクタxxxで値付きの'return'を実行しようとしました。('return' with value from constructor: xxx)

144: コンストラクタxxxにはメソッド本体が必要です。(Constructor xxx requires a method body.)

145: コンストラクタxxxをnative、abstract、static、synchronized、またはfinalとすることはできません。(Constructors can't be native, abstract, static, synchronized, or final: xxx)

146: コンストラクタの呼び出しが再帰的です:xxx(Recursive constructor invocation: xxx.)

147: コンストラクタはstrictfpで修飾することはできません。(Constructors may not be modified by strictfp.)

148: コンストラクタ以外からコンストラクタを呼び出すことはできません。(Only constructors can invoke constructors.)

149: コンパイラにメモリが不足しています。"-J-mx"コマンド行オプションを使って、最大ヒープサイズを増やしてください。(The compiler has run out of memory. Consider using the "-J-mx" command line option to increase the maximum heap size.)

150: コンパイラにメモリが不足しています。"-J-oss"コマンド行オプションを使って、Javaスタックに割り当てるメモリを増やしてください。(The compiler has run out of stack space. Consider using the "-J-oss" command line option to increase the memory allocated for the Java stack.)

151: コンパイラ内部でエラーが発生しました。http://java.sun.com/cgi-bin/bugreport.cgiでバグ報告をしてください。(An error has occurred in the compiler; please file a bug report (http://java.sun.com/cgi-bin/bugreport.cgi).)

152: コンパイラ内部で例外が発生しました。http://java.sun.com/cgi-bin/bugreport.cgiでバグ報告をしてください。(An exception has occurred in the compiler; please file a bug report (http://java.sun.com/cgi-bin/bugreport.cgi).)

153: スーパークラスのコンストラクタが呼び出される前にxxxを参照することはできません。(Can't reference xxx before the superclass constructor has been called.)

154: スーパークラスのコンストラクタが例外xxxをスローするため、デフォルトのコンストラクタをこのクラス用に生成することができません。このクラスのコンストラクタを明示的に定義してください。(A default constructor cannot be created for this class because the constructor of its superclass throws the exception xxx. Define the constructor for this class explicitly.)

155: ディレクトリxxxは存在しません。(The xxx directory does not exist.)

156: パッケージxxxがyyyに見つかりません。(Package xxx not found in yyy.)

157: パッケージxxxが見つかりません。パッケージxxxがアクセス可能になるようにクラスパスを調整してください。(Package xxx not found. Please adjust the classpath so that package xxx is accessible.)

158: パッケージxxxの有無を確認中に入出力エラーが発生しました。(I/O error while checking for existence of package xxx.)

159: パッケージ宣言は1回しかできません。(Only one package declaration allowed.)

160: ファイナルクラスxxxからサブクラスを生成することはできません。(Can't subclass final classes: xxx)

161: ファイルxxxにはyyyが含まれるとみなされていましたが、含まれていたのはzzzでした。ファイルを消去するか、クラスパスに含まれる適切なサブディレクトリに移動してください。(File xxx does not contain yyy as expected, but zzz. Please remove the file, or make sure it appears in the correct subdirectory of the class path.)

162: ファイルxxxにはyyyは含まれていません。クラスパスを変更して、yyyがzzzにないようにしてください。(File xxx does not contain yyy as expected. Please adjust the class path so that the file does not appear in the zzz.)

163: ブランクfinalへの代入に使用する変数は単純な名前、または'this'で修飾された単純な名前でなければなりません:'xxx'または"this.xxx"(The variable in an assignment to a blank final must be a simple name or a simple name qualified by 'this': 'xxx' or "this.xxx".)

164: ブランクfinal変数xxxに2回以上値を代入することはできません。(Can't assign a second value to a blank final variable: xxx)

165: ブランクfinal変数xxxにループ中で代入しようとしました。初期化は必ず1回限りでなければなりません。(Attempt to assign a blank final variable xxx in a loop. The initialization must occur exactly once.)

166: ブランクfinal変数xxxは初期化されていない可能性があります。ブランクfinal変数には初期化子または各コンストラクタで値が代入されなければなりません。(Blank final variable 'xxx' may not have been initialized. It must be assigned a value in an initializer, or in every constructor.)

167: メジャー.マイナーバージョン'xxx'は新しいため、このツールでは認識できません。(The major.minor version 'xxx' is too recent for this tool to understand.)

168: メジャーバージョン'xxx'は古いため、このツールでは認識できません。(The major version 'xxx' is too old for this tool to understand.)

169: メソッド'xxx'はyyyで継承されていますが、zzzの同名のメソッドを覆い隠しています。明示的に'this'を使ってどちらのメソッドであるかを指定してください。(Method 'xxx' is inherited in yyy, and hides a method of the same name in zzz. An explicit 'this' qualifier must be used to select the desired instance.)

170: メソッドxxxで値なしの'return'を実行しようとしました。('return' without value from xxx.)

171: メソッドxxxで値付きの'return'を実行しようとしました。('return' with value from xxx.)

172: メソッドxxxには本体が必要です。あるいはabstractとして宣言します。(Method xxx requires a method body. Otherwise declare it as abstract.)

173: メソッドxxxの終わりにreturnが必要です。(Return required at end of xxx.)

174: メソッドxxxはyyyでstaticとすることはできません。staticメンバはインタフェースかトップレベルクラスにのみ許されています。(Method xxx can't be static in yyy. Only members of interfaces and top-level classes can be static.)

175: メソッドxxxはyyyで見つかりません。(Method xxx not found in yyy.)

176: メソッドxxxをtransientとすることはできません。transientは変数にのみ適用されます。(Method xxx can't be transient. Only variables can be transient.)

177: メソッドxxxをvolatileとすることはできません。volatileは変数にのみ適用されます。(Method xxx can't be volatile. Only variables can be volatile.)

178: メソッド宣言xxxが重複しています。(Duplicate method declaration: xxx)

179: メソッド内ではコンストラクタを最初に呼び出さなければなりません。(Constructor invocation must be the first thing in a method.)

180: メンバxxxを持つ型yyyはzzzからはアクセスできません。(The type yyy to which the member xxx belongs is not accessible from zzz.)

181: メンバインタフェースはインタフェースかトップレベルクラスにのみ許されています。(Member interfaces can only occur in interfaces and top-level classes.)

182: メンバ宣言に一貫性がありません。public、private、protectedのうちの1つしか指定できません。(Inconsistent member declaration. At most one of public, private, or protected may be specified.)

183: リリース'xxx'はこのコンパイラでは認識されません。(The release 'xxx' is unknown to this compiler.)

184: 引数xxxをvoid型にすることはできません。(Argument can't have type void: xxx)

185: 演算上の例外が発生しました。(Arithmetic exception.)

186: 括弧が釣り合っていません。(Unbalanced parentheses.)

187: 局所クラス'xxx'はすでにこのメソッドで定義されています。(Local class 'xxx' is already defined in this method.)

188: 型'xxx'はyyyで継承されていますが、クラス定義を囲むスコープにある同名の型を覆い隠しています。明示的に前置修飾子を使ってどちらの型であるかを指定してください。(Type 'xxx' is inherited in yyy, and hides a type of the same name in an enclosing scope. An explicit qualifier prefix must be used to name this type.)

189: 型xxxに'length'を適用しようとしましたが、これは配列ではありません。('length' applied to xxx, which is not an array.)

190: 型xxxをprivateとすることはできません。パッケージのメンバは常にそのパッケージ内からアクセス可能です。(The type xxx can't be private. Package members are always accessible within the current package.)

191: 型xxxをprotectedとすることはできません。パッケージのメンバは、publicであるか、パッケージに局所的であるかのどちらかです。(The type xxx can't be made protected. Package members can either be public or local to the current package.)
【解説】パッケージのメンバのアクセススコープ(アクセス領域)は、publicまたはそのパッケージ内です。“パッケージに局所的”とは、後者の意味。

192: 型xxxをstaticとすることはできません。staticメンバはインタフェースかトップレベルクラスにのみ許されています。(The type xxx can't be static. Static members can only occur in interfaces and top-level classes.)

193: 型xxxをstaticとすることはできません。この型はパッケージのメンバなので、すでにトップレベルにあります。(The type xxx can't be declared static. It is already top-level, since it is a member of a package.)

194: 型がありません。(Type expected.)

195: 型とパッケージに同じ名前を付けることはできません。クラスxxxはアクセス可能ですが、パッケージ名にxxxを使うことはできません。(A type and a package cannot have the same name. The name xxx cannot be used to name a package while the class yyy is accessible.)

196: 型とパッケージに同じ名前を付けることはできません。パッケージxxxはアクセス可能ですが、クラス名にxxxを使うことはできません。(A type and a package cannot have the same name. The name xxx cannot be used to name a class while the package xxx is accessible.)

197: 型式が無効です。(Invalid type expression.)

198: 型表現中では配列の次元を指定することはできません。(Can't specify array dimension in a type expression.)
【解説】こんなふうに、初心者がよく間違えます。配列というオブジェクトのタイプ…クラス名といってもいいか?…は、あくまでも、中に数字のないXxxx[]なのであります。

199: 警告1個(1 warning)

200: 警告xxx個(xxx warnings)

201: 項がありません。(Missing term.)

202: 使い方:xxx

には次のものがあります。

-gすべてのデバッグ情報を生成する
-g:nodeデバッグ情報を生成しない
-g:'{'lines,vars,source'}'いくつかのデバッグ情報だけを生成する
-O最適化;デバッグを抑制し、クラスファイルを大きくする
-nowarn警告を発生させない
-verboseコンパイラの動作についてメッセージを出力する
-deprecation推奨されないAPIが使用されているソースの場所を出力する
-classpathユーザクラスファイルを探す場所を指定する
-sourcepath入力ソースファイルを探す場所を指定する
-bootclasspathブートストラップクラスファイルの位置をオーバーライドする
-extdirs拡張機能がインストールされた位置をオーバーライドする
-d生成されたクラスファイルを格納する場所を指定する
-encodingソースファイルが使用する文字エンコーディングを指定する
-target特定のVMバージョン用のクラスファイルを生成する

(Usage: xxx

where includes:

-g Generate all debugging info
-g:none Generate no debugging info
-g:'{'lines,vars,source'}' Generate only some debugging info
-O Optimize; may hinder debugging or enlarge class files
-nowarn Generate no warnings
-verbose Output messages about what the compiler is doing
-deprecation Output source locations where deprecated APIs are used
-classpath Specify where to find user class files
-sourcepath Specify where to find input source files
-bootclasspath Override location of bootstrap class files
-extdirs Override location of installed extensions
-d Specify where to place generated class files
-encoding Specify character encoding used by source files
-target Generate class files for specific VM version)

203: 識別子がありません。(Identifier expected.)

204: 修飾されたnew式における型名は、修飾されていない識別子でなければなりません。(The type name in a qualified 'new' expression must be an unqualified identifier.)

205: 修飾子が繰り返されています。(Repeated modifier.)

206: 修飾子されたコンストラクタ名が無効です。(Invalid qualified constructor name.)

207: 初期化子は正常に完了できなければなりません。(Initializer must be able to complete normally.)

208: 初期化子内では例外xxxをスローできません。(Exception xxx can't be thrown in initializer.)

209: 数字が無効です。(Invalid character in number.)

210: 数値がアンダーフローしました:倍精度リテラルが小さ過ぎます。(Numeric underflow: double literal too small.)

211: 数値がアンダーフローしました:浮動リテラルが小さ過ぎます。(Numeric underflow: float literal too small.)

212: 数値がオーバーフローしました:倍精度リテラルが大き過ぎます。(Numeric overflow: double literal too large.)

213: 数値がオーバーフローしました:浮動リテラルが大き過ぎます。t(Numeric overflow: float literal too large.)

214: 整数リテラルが範囲外です。10進ロングリテラルは-9223372036854775808Lから9223372036854775807Lの範囲でなければなりません。(Integer literal out of range. Decimal long literals must be in the range -9223372036854775808L to 9223372036854775807L.)

215: 整数リテラルが範囲外です。10進整数リテラルは-2147483648から2147483647の範囲でなければなりません。(Integer literal out of range. Decimal int literals must be in the range -2147483648 to 2147483647.)

216: 整数リテラルが範囲外です。16進ロングリテラルは0x0Lから0xffffffffffffffffLの範囲でなければなりません。(Integer literal out of range. Hexadecimal long literals must be in the range 0x0L to 0xffffffffffffffffL.)

217: 整数リテラルが範囲外です。16進整数リテラルは0x0から0xffffffffの範囲でなければなりません。(Integer literal out of range. Hexadecimal int literals must be in the range 0x0 to 0xffffffff.)

218: 整数リテラルが範囲外です。8進ロングリテラルは00Lから01777777777777777777777Lの範囲でなければなりません。(Integer literal out of range. Octal long literals must be in the range 00L to 01777777777777777777777L.)

219: 整数リテラルが範囲外です。8進整数リテラルは00から037777777777の範囲でなければなりません。(Integer literal out of range. Octal int literals must be in the range 00 to 037777777777.)

220: 精度が落ちている可能性があります。xxxからyyyへの変換には、明示的なキャストを使用します。(Possible loss of precision. Use an explicit cast to convert xxx to yyy.)
【解説】参照

221: 宣言にはラベルxxxを付けることはできません。(A declaration cannot be labeled: xxx)

222: 宣言中では配列の次元を指定することはできません。(Can't specify array dimension in a declaration.)

223: 多重継承はサポートされていません。(Multiple inheritance is not supported.)

224: 代入の左辺が無効です。(Invalid left hand side of assignment.)

225: 代入式は条件式(つまり、?:式)の3番目の部分式としては使用できません。この代入式を括弧で囲んでみてください。(Assignment expressions are not permitted as the third subexpression of a conditional expression (that is, a ? : expression). Try parenthesizing this assignment expression.)

226: 注:xxxは推奨されないAPIを使用またはオーバーライドしています。ドキュメントを参照して他の方法を検討してください。(Note: xxx uses or overrides a deprecated API. Please consult the documentation for a better alternative.)

227: 注:xxxは推奨されないAPIを使用またはオーバーライドしています。詳細については、"javac-deprecation"コマンドを使用してください。(Note: xxx uses or overrides a deprecated API. Recompile with "-deprecation" for details.)

228: 注:xxxは推奨されません。(Note: xxx has been deprecated.)

229: 注:yyyのメソッドxxxはzzzの対応するメソッドをオーバーライドすることはできません。異なるパッケージに対してはprivateであるため、このメソッドをオーバーライドすることはできません。(Note: Method xxx in yyy does not override the corresponding method in zzz. If you are trying to override this method, you cannot do so because it is private to a different package.)

230: 注:yyyのメソッドxxxは推奨されません。(Note: The method xxx in yyy has been deprecated.)

231: 注:yyyの変数xxxは推奨されません。(Note: The variable xxx in yyy has been deprecated.)

232: 注:コンストラクタxxxは推奨されません。(Note: The constructor xxx has been deprecated.)

233: 注:推奨されないAPIを使用またはオーバーライドしているファイルがxxx個あります。ドキュメントを参照して他の方法を検討してください。(Note: xxx files use or override a deprecated API. Please consult the documentation for a better alternative in each case.)

234: 注:推奨されないAPIを使用またはオーバーライドしているファイルがxxx個あります。詳細については、"javac-deprecation"コマンドを使用してください。(Note: xxx files use or override a deprecated API. Recompile with "-deprecation" for details.)

235: 注:配列の複製は確認済み例外をスローすることはないので、catch節は不要です。不要なcatch節を削除するか、あるいは以前のコンパイラとの互換性を保ちたい場合は、次のような擬似的なthrow文を挿入してください。

if(false) throw new CloneNotSupportedException();

(Note: The cloning of an array does not throw any checked exceptions, and therefore does not require any catch clauses. Please remove unused catch clauses, or if you wish to retain compatibility with older compilers, you may insert an artificial throw as follows:

if (false) throw new CloneNotSupportedException();)
【解説】ここで“確認済み例外”と訳されているchecked exceptionsは「コンパイル時にチェックされる(checked)例外(exceptions)」、すなわちRuntimeException以外の例外です。これらの例外は、ご存じのように、try/catchするかthrowsしてないと、コンパイル・エラーになります。このページで、Gosling氏がJavaのchecked exceptionsについて論じています。

236: 定数式が必要です。(Constant expression required.)

237: 同じ引数のメソッドを異なる戻り値の型で再定義することはできません。xxxは以前yyyと宣言されていました。(Methods can't be redefined with a different return type: xxx was yyy)

238: 内部エラーが発生しました。(Internal error.)

239: 内部クラスxxxがyyyにありません。(No inner class xxx found in yyy.)

240: 内部クラスxxxをstatic参照することはできません。(Can't make a static reference to inner class xxx.)
【解説】内部クラス(inner class)にはstatic修飾子がなく、したがってそれは、クラスのメンバではなく、そのクラスのオブジェクトのメンバ扱いとなるので、static参照--オブジェクトを介さない参照--はできません(JLS 8.1.2, 8.5.2)。staticな内部クラス(???)は、正式には「staticなネステッドクラス(nested class,入れ子状になっているクラス)」と申します。ですから、staticでないnested classがinner class(内部クラス)です。ああ、ややこしい!。

241: 内部クラスxxxをvolatile、transient、native、またはsynchronizedとすることはできません。(Inner classes can't be volatile, transient, native, or synchronized: xxx)

242: 内部クラスのサポートは中止されました。(Support for inner classes has been disabled.)

243: 内部クラスを囲むxxxのインスタンスがスコープ内にありません。yyyにアクセスする場合は、"outer.member"などのように明示する必要があります。(No enclosing instance of xxx is in scope; an explicit one must be provided when accessing yyy, as in "outer.member".)

244: 内部クラスを囲むxxxのインスタンスがスコープ内にないので、内部クラスのインスタンスを生成できません。yyyについてはデフォルトのコンストラクタを生成できません。(No enclosing instance of xxx is in scope; cannot create a default constructor for yyy.)

245: 内部クラスを囲むxxxのインスタンスがスコープ内にないので、内部クラスのインスタンスを生成できません。yyyを生成する場合には、"outer.newInner()"または"outer.super()"などの明示的なコンストラクタが必要です。(No enclosing instance of xxx is in scope; an explicit one must be provided when creating yyy, as in "outer. new Inner()" or "outer. super()".)

246: 内部クラス宣言が重複しています。xxxはこのスコープですでに定義されています。(Duplicate inner class declaration: xxx is already defined in this scope.)

247: 入力文字が無効です。(Invalid character in input.)

248: 配列の大きさが指定されていません。(Array dimension missing.)

249: 配列の大きさが無効です。(Invalid array dimension.)

250: 配列の添え字が必要です。(Array index required.)

251: 配列定数は初期化子でのみ使用できます。(Array constants can only be used in initializers.)

252: 浮動小数点の形式が無効です。(Invalid floating point format.)

253: 文がありません。(Statement expected.)

254: 文には、それを囲む文と同じ識別子xxxでラベルを付けることはできません。(A statement cannot be labeled with the same identifier as one of its enclosing statements: xxx)

255: 文字列が行の最後で終了していません。(String not terminated at end of line.)

256: 文字列が入力の最後で終了していません。(String not terminated at end of input.)

257: 変数'xxx'はyyyで継承されていますが、zzzの同名の変数を覆い隠しています。明示的に'this'を使って目的のインスタンスを選択してください。(Variable 'xxx' is inherited in yyy, and hides a variable of the same name in zzz. An explicit 'this' qualifier must be used to select the desired instance.)

258: 変数'xxx'はyyyで継承されていますが、同名の局所変数を覆い隠しています。明示的に'this'を使ってどちらの変数であるかを指定するか、あるいは局所変数の名前を変更してください。(Variable 'xxx' is inherited in yyy, and hides a local variable of the same name. An explicit 'this' qualifier must be used to select the variable, or the local must be renamed.)

259: 変数'xxx'はすでにこのメソッドで定義されています。(Variable 'xxx' is already defined in this method.)

260: 変数xxxに異なるメソッドから代入しようとしました。クラス定義を囲むブロックからは、内側のクラスではブロックに定義されている変数のうち局所的なfinal変数だけが有効です。(Attempt to assign to a variable xxx in a different method. From enclosing blocks, only final local variables are available.)

261: 変数xxxに異なるメソッド中から参照しようとしました。クラス定義を囲むブロックからは、内側のクラスではブロックに定義されている変数のうち局所的なfinal変数だけが有効です。(Attempt to use a non-final variable xxx from a different method. From enclosing blocks, only final local variables are available.)

262: 変数xxxはyyyでstaticとすることはできません。staticメンバはインタフェースかトップレベルクラスにのみ許されています。(Variable xxx can't be static in yyy. Only members of interfaces and top-level classes can be static.)

263: 変数xxxは初期化されていない可能性があります。(Variable xxx may not have been initialized.)

264: 変数xxxをstrictとすることはできません。(Variables can't be declared strict: xxx)

265: 変数xxxをsynchronized、abstract、またはnativeとすることはできません。(Variables can't be synchronized, abstract or native: xxx)

266: 変数宣言が重複しています。xxxは以前yyyと宣言されていました。(Duplicate variable declaration: xxx was yyy)

267: 変数名'xxx'がメソッド引数で2回以上使われています。(Variable 'xxx' is used twice in the argument list of this method.)

268: 無効なメソッド宣言です。メソッド名が必要です。(Invalid method declaration; method name required.)

269: 無効なメソッド宣言です。戻り値の型が必要です。(Invalid method declaration; return type required.)

270: 無効なラベルです。(Invalid label.)

271: 無効な項です。(Invalid term.)

272: 無効な式文です。(Invalid expression statement.)

273: 無効な宣言です。(Invalid declaration.)

274: 無効な文字定数です。(Invalid character constant.)

275: 名前xxxはパッケージを参照しなければなりません。型とパッケージには同じ名前を付けることはできないため、yyyというアクセス可能なクラスの名前は無効です。クラスyyyの名前を変更するか、クラスパスから削除してください。(The name xxx must refer to a package. It is illegal for there to be an accessible class named yyy because types and packages cannot have the same name. The class yyy should be renamed or taken off the classpath.)

276: 名前のないクラスが'extends'節または'implements'節を持つことはできません。(Only named classes can have 'extends' or 'implements' clauses.)

277: 例外xxxはキャッチされるか、あるいはこのコンストラクタのthrows節で宣言されなければなりません。(Exception xxx must be caught, or it must be declared in the throws clause of this constructor.)

278: 例外xxxはキャッチされるか、あるいはこのメソッドのthrows節で宣言されなければなりません。(Exception xxx must be caught, or it must be declared in the throws clause of this method.)

279: 例外xxxはキャッチできません。例外はクラスjava.lang.Throwableのサブクラスでなければなりません。(Can't catch xxx; it must be a subclass of class java.lang.Throwable.)

280: 例外xxxはスローできません。例外はクラスjava.lang.Throwableのサブクラスでなければなりません。(Can't throw xxx; it must be a subclass of class java.lang.Throwable.)

281: 例外xxxは対応するtry文の本体でスローされることはありません。(Exception xxx is never thrown in the body of the corresponding try statement.)



###以下は、複数を組み合わせて使われる“メッセージ部品”ですが、重要なものも多いです###


abstract xxx yyyに直接アクセスすることはできません。(abstract xxx yyy cannot be accessed directly)

xxxはabstractです。インスタンスを生成することはできません。(xxx is abstract; cannot be instantiated)

abstractメソッドが本体を持つことはできません。(abstract methods cannot have a body)

xxxはyyyで定義されています。(xxx is already defined in yyy)

xxxは単一の型インポート宣言で定義されています。(xxx is already defined in a single-type import)

xxxはコンパイル単位で定義されています。(xxx is already defined in this compilation unit)
【解説】正訳:xxxはこのコンパイル単位の中ですでに定義されています。コンパイル単位とは、ひとつのソースファイル、.javaファイルのことです。このエラーメッセージは、ひとつのソースファイルの中の同一のスコープ内(たとえばクラスグローバルなスコープ)で同名のシンボル(名前)が二重に使われているときに出ます。

名前のないクラスがインタフェースを実装しています。引数を持つことはできません。(anonymous class implements interface; cannot have arguments)

名前のないクラスがインタフェースを実装しています 。newに修飾子を持つことはできません。(anonymous class implements interface; cannot have qualifier for new)

配列の大きさが指定されていません。(array dimension missing)

配列が要求されましたが 、xxxが見つかりました。(array required, but xxx found)
【解説】正訳:配列が必要なところにxxxがあります。

リリース 1.4では'assert'はキーワードなので識別子として使うことはできません。(as of release 1.4, 'assert' is a keyword, and may not be used as an identifier)
【解説】これは、assertがサポートされている、という情報メッセージです。エラーメッセージだと思うと混乱することがあります。

breakがswitch文またはループの外にあります。(break outside switch or loop)

xxxの呼び出しはコンストラクタの先頭文でなければなりません。(call to xxx must be first statement in constructor)
【解説】このエラーメッセージのxxxは。ほとんどの場合、superです。

xxxにアクセスできません。
yyy
(cannot access xxx
yyy)

yyyのxxxは(zzz)に適用できません。(xxx in yyy cannot be applied to (zzz))
【解説】yyyの(zzz)を呼び出そうとしたが、yyyにはxxxしかない、という苦情です。JVMがサブクラスのコンストラクタからsuper()を呼び出そうとしたが、スーパークラスyyyに無引数のコンストラクタがなく、intを引数に取るコンストラクタがあったときは:「yyyのyyy(int)は()に適用できません。」となります。

final変数xxxに値を代入することはできません。(cannot assign a value to final variable xxx)

xxxは間接参照できません。(xxx cannot be dereferenced)
【解説】'dereference'は、参照(reference)から、それが指しているオブジェクトを参照すること、オブジェクトにアクセスすること。たとえば「int cannot be dereferenced」は、「intからはオブジェクトを参照できません(オブジェクトにアクセスできません)」「intはオブジェクトを参照できません」などが適訳。‘間接参照’では、たぶん多くの人にとって意味不明でしょう。

xxxを異なる引数 で継承することはできません。(xxx cannot be inherited with different arguments: and )

final xxxからは継承できません。(cannot inherit from final xxx)

xxxを読み込めません。(cannot read: xxx)

スーパータイプのコンストラクタの呼び出し前はxxxを参照できません。(cannot reference xxx before supertype constructor has been called)

シンボルを解決できません。
シンボル: xxx yyy zzz
(cannot resolve symbol
symbol: xxx yyy zzz)
【解説】シンボルとは、名前のことです。プログラム中でdumbNumbという名前が使われているのに、その定義がどこにもないない(たとえばdumbNumbが定義されているクラスやパッケージがimportされていない--import文がない--、定義されている名前--変数名やメソッド名--はdumbNumbではなくてdumbNimbだった--つまりタイプミス--、などなど)。このエラーメッセージは、初心者が非常に頻繁に頂戴します…とくに、パッケージに属するクラスAが同じパッケージ内のクラスBを使うとき、初心者はクラスパスの問題で悩むでしょう(解説)。

    [シンボルを解決できません]のよくある原因:
    (1)名前(変数名、クラス名、メソッド名など)のタイプミス.
      ★メソッドに関しては、メソッドの名前だけでなくメソッドのシグネチャ(引数の形式や返し値のタイプ, throwsしている例外クラスの正確な名前など)も判定されるので、要注意!
    (2)必要なパッケージをimportしてない.
    (3)クラスパスの指定が正しくない.
    (4)小さなスコープの名前が大きなスコープの名前を隠している.
      (a)ローカル変数がクラスグローバル変数を隠している:
            JButton okButton; //クラスグローバルな変数
            public Xxx(){ //コンストラクタ(またはそのほかのメソッド内)
              ...
              ...
              JButton okButton = new JButton("OK"); //クラスグローバルなオブジェク
                                                    //トを作るつもりで、うっかり、
                                                    //新たなローカルオブジェクトを
                                                    //宣言・作成してしまった
            .....
              //正しくはこう:
              okButton = new JButton("OK"); //グローバルに宣言したokButtonを指す
      (b)プログラム中で使用する既存クラスと同名のクラスを定義したため、既存クラスのメソッド等がないことになってしまう:
            import java.net.*;
            ...
            public class URLConnection{ //java.net.URLConnectionを隠してしまう
              ...
              ...

シンボルを解決できません。
シンボル: xxx yyy zzz
場所 :vvvのwww
(cannot resolve symbol
symbol : xxx yyy zzz
location: www vvv)

シンボルを解決できません。
シンボル: xxx yyy zzz
場所 :vvvの www
'uuu'を意図していると思われます。
(cannot resolve symbol
symbol : xxx yyy zzz
location: www vvv
perchance you meant 'uuu')

戻り値の型がvoidのメソッドからは値を返せません。(cannot return a value from method whose result type is void)

パラメータにされた型からstaticクラスを選択することはできません。(cannot select a static class from a parameterized type)
【解説】1.4.xまでのJ2SEには、パラメタライズドタイプ(メソッドならそのメソッドをたったひとつだけ書いておき、その引数等のタイプをさまざまに可変項(パラメータ)にできる便利機能、generics(総称性機能)とも呼ばれる--つまりメソッド等の引数等を、今までのようにタイプをひとつに…intなら絶対intだけ!…特定せずに“総称的に”定義できるので。C++言語のテンプレート機能のように…)はありません。1.5からサポートされるらしい…。

'case'、'default'、または'}'がありません。('case', 'default' or '}' expected)

'catch'への'try'がありません。('catch' without 'try')

xxxは同名のパッケージと競合します。(xxx clashes with package of same name)

xxxの書き込み中にエラーが発生しました。yyy(error while writing xxx: yyy)

'class'または'interface'がありません。('class' or 'interface' expected)

クラスxxxは publicであり、ファイル xxx.javaで宣言しなければなりません。(class xxx is public, should be declared in a file named xxx.java)
【解説】参照

定数式が必要です。(constant expression required)

continueがループの外にあります。(continue outside of loop)

xxxを含む継承がループしています。(cyclic inheritance involving xxx)

xxxはabstractでなく 、zzz内のabstractメソッドyyyをオーバーライドしません。(xxx is not abstract and does not override abstract method yyy in zzz)
【解説】インタフェイスzzzをimplementsした具体クラスxxxが、zzzのyyyメソッドを実装していない。“しません”ではなくて、“していません”ですね、ここは。
【改訳案】xxxはabstractじゃないのに、zzz内のabstractメソッドyyyをオーバーライド(ちゅうか実装)していませんよ。

パッケージxxxは存在しません。(package xxx does not exist)

'.class'がありません。('.class' expected)

caseラベルが重複しています。(duplicate case label)

クラスxxxが重複しています。(duplicate class: xxx)

defaultラベルが重複しています。(duplicate default label)

'else'への'if'がありません。('else' without 'if')

空の文字リテラルです。(empty character literal)

xxxを含む囲うインスタンスが必要です。(an enclosing instance that contains xxx is required)

エラー:(error:)

xxxの読み込みエラーです。yyy(error reading xxx; yyy)

例外xxxはすでにキャッチされています。(exception xxx has already been caught)

例外xxxは対応するtry文の本体ではスローされません。(exception xxx is never thrown in body of corresponding try statement)

xxxがありません。(xxx expected)

finalパラメータxxxに値を代入することはできません。(final parameter xxx may not be assigned)

'finally'への'try'がありません。('finally' without 'try')

浮動小数点数が大き過ぎます。(floating point number too large)

浮動小数点数が小さ過ぎます。(floating point number too small)

内部クラスがstatic宣言を持つことはできません。(inner classes cannot have static declarations)

xxxは不正な文字です。(illegal character: xxx)

修飾子xxxと yyyの組み合わせは不正です。(illegal combination of modifiers: xxx and yyy)

エスケープ文字が不正です。(illegal escape character)

順方向参照が不正です。(illegal forward reference)

xxxの初期化子が不正です。(illegal initializer for xxx)

文字リテラルの行末が不正です。(illegal line end in character literal)

修飾子が不正です 。xxxは内部クラスではありません。(illegal qualifier; xxx is not an inner class)

式の開始が不正です。(illegal start of expression)

型の開始が不正です。(illegal start of type)

Unicodeエスケープが不正です。(illegal unicode escape)

インポートにはxxxの標準名が必要です。(import requires canonical name for xxx)

型の形式が不適切です。パラメータが不足しています。(improperly formed type, some parameters are missing)

型xxxと yyyは比較できません。(incomparable types: xxx and yyy)

初期化子は正常に完了できなければなりません。(initializer must be able to complete normally)

整数xxxが大き過ぎます。(integer number too large: xxx)

内部エラーです 。xxxをyyyで(zzz)にインスタンス生成できません。(internal error; cannot instantiate xxx at yyy to (zzz))

ここにインタフェースが必要です。(interface expected here)

インタフェースメソッドが本体を持つことはできません。(interface methods cannot have body)

16進数には16進数字が最低1つは含まれていなければなりません。(hexadecimal numbers must contain at least one hexadecimal digit)

メソッドの宣言が不正です。戻り値の型が必要です。(invalid method declaration; return type required)

ソースファイルの読み取りエラーです: xxx(error reading source file: xxx)

ラベルxxxはすでに使われています。(label xxx already in use)

'('または'['がありません。('(' or '[' expected)

コードが大きすぎます。(code too large)

try文のコードが大きすぎます。(code too large for try statement)

配列型の次元が多すぎます。(array type has too many dimensions)

ローカル変数が多すぎます。(too many local variables)

パラメータが多すぎます。(too many parameters)

定数が多すぎます。(too many constants)

クラスxxx内の定数が多すぎます。(too many constants in class xxx)

コードが要求するスタックが多すぎます。(code requires too much stack)

定数文字列が長すぎます。(constant string too long)

文字列 "xxx..." のUTF8表現が、定数プールに対して長すぎます。(UTF8 representation for string "xxx..." is too long for the constant pool)

ローカル変数xxxは内部クラスからアクセスされます 。finalで宣言される必要があります。(local variable xxx is accessed from within inner class; needs to be declared final)

浮動小数点リテラルが不正です。(malformed floating point literal)

メソッド本体がないか 、abstractとして宣言されています。(missing method body, or declare abstract)

return文が指定されていません。(missing return statement)
【解説】voidタイプ以外のメソッドの(1)最後の行や、(2)if文の最後のelse節や、(3)swicth文のdefault節に、正しいタイプの値を返すreturn文がないとき、このエラーを食らいます。
  たとえば次の文は、いくら人間の論理として正しくてもエラーになります。
if (x == 1){
  return "good";
}
else if (x == 2){
  return "excellent";
}
else if (x == 3){ // xは3までしかないのだが…
  return "great";
}
// しかし最後のelse{ return ...;}がないのでエラーになる、defalutのない
// case節で同様のことをしても、やはりエラーになる。
// 上では、最後のelse if(x == 3){のところを単なるelse{にすればよい。

戻り値がありません。(missing return value)

修飾子xxxをここで使うことはできません。(modifier xxx not allowed here)

名前が競合しています 。xxxとyyyは削除後の名前が同じです。(name clash: xxx and yyy have the same erasure)

名前が競合しています 。yyyのxxxと wwwのzzzはまだ他方をオーバーライドしていませんが、削除後の名前が同じです。(name clash: xxx in yyy and zzz in www have the same erasure, yet neither overrides the other)

xxxは内部での使用のため予約されています。(xxx is reserved for internal use)

nativeメソッドが本体を持つことはできません。(native methods cannot have a body)

? に対する互換性のない型 : どちらも他方のサブタイプではありません。
2番目のオペランド : xxx
3番目のオペランド : yyy
(incompatible types for ?: neither is a subtype of the other
second operand: xxx
third operand : yyy)

型xxxの内部クラスを囲むインスタンスがスコープ内にありません。(no enclosing instance of type xxx is in scope)

ここにインタフェースは必要ありません。(no interface expected here)

xxxはyyyのエントリに適合しません 。zzzが必要です。(xxx has no match in entry in yyy; required zzz)

staticでないxxx yyyをstaticコンテキストから参照することはできません。(non-static xxx yyy cannot be referenced from a static context)
【解説】いちばんありふれたstaticコンテキストは、main()メソッドの中です(public static void main(String[] args))。staticコンテキストの中で、オブジェクトを作らずに、インスタンスメソッド、インスタンス変数、内部クラス(inner class)などにアクセスしようとすると、このエラーを食らいます。

yyyのxxxは publicではありません。パッケージ外からはアクセスできません。(xxx is not public in yyy; cannot be accessed from outside package)

yyyのxxxは publicクラスまたはインタフェースでは定義されません。パッケージ外からはアクセスできません。(xxx in yyy is not defined in a public class or interface; cannot be accessed from outside package)
【解説】“では定義されません”ではなく、正しい訳は“で定義されていません”…だから、publicなアクセスはできないよ、とjavac門番が言っているのです。

xxxは内部クラスを囲みません。(not an enclosing class: xxx)

xxxはループラベルではありません。(not a loop label: xxx)

文ではありません。(not a statement)

型パラメータxxxはその範囲を越えています。(type parameter xxx is not within its bound)

型パラメータxxxはその範囲を越えています。yyy(type parameter xxx is not within its bound; yyy)

演算子xxxは yyyに適用できません。(operator xxx cannot be applied to yyy)

xxxには親がありません。(orphaned xxx)

xxx; オーバーライドされたメソッドはyyyです。(xxx; overridden method is yyy)

xxx; オーバーライドされたメソッドはyyyをスローしません。(xxx; overridden method does not throw yyy)
【解説】元のメソッドはyyyをthrowsしてないぞ、と言っています。総称的なExceptionを書いても、だめです。しません、ではなくて、していません、が正しい日本語訳でしょう。;-)

xxx; オーバーライドするメソッドがstaticです。(xxx; overriding method is static)

xxxスーパークラスでの定義より弱いアクセス特権(yyy)を割り当てようとしました。(xxx; attempting to assign weaker access privileges; was yyy)
【解説】これは日本語訳が間違っています。(yyy)を、“スーパークラスでの定義”の直後に置くと、正しい文になります。たとえばinterfaceで宣言されるメソッドはすべて暗黙裡にpublicですが、サブクラスがそれをprivateにしたりすると、このエラーメッセージが出ます。

パッケージxxxは同名のクラスと競合しています。(package xxx clashes with class of same name)

xxx
検出値 : yyy
期待値 : zzz
(xxx
found : yyy
required: zzz)

staticクラスのnewが修飾されています。(qualified new of static class)

コンストラクタの呼び出しが再帰的です。(recursive constructor invocation)

xxxの参照はあいまいです 。wwwの yyy zzzと ttt の vvv uuuが両方適合します。(reference to xxx is ambiguous, both yyy zzz in www and vvv uuu in ttt match)

インタフェースが繰り返されています。(repeated interface)

修飾子が繰り返されています。(repeated modifier)

xxxはzzzで yyyアクセスされます。(xxx has yyy access in zzz)

メソッドの外のreturn文です。(return outside method)

シグニチャーがxxxに適合しません。互換性のないインタフェースです。(signature does not match xxx; incompatible interfaces)

シグニチャーがxxxに適合しません。互換性のないスーパータイプです。(signature does not match xxx; incompatible supertype)

ソースの書き込みエラーです。入力ファイルxxxを上書きできません。(error writing source; cannot overwrite input file xxx)

シンボルxxxが 、yyyでコンパイラが合成したシンボルと競合します。(the symbol xxx conflicts with a compiler-synthesized symbol in yyy)

'try'への'catch'または'finally'がありません。('try' without 'catch' or 'finally')

型xxxはパラメータをとりません。(type xxx does not take parameters)

予期しない型
検出値 : xxx
期待値 : yyy
(unexpected type
found : xxx
required: yyy)

型変数は間接参照できません。(type variables cannot be dereferenced)
【解説】'type variable'はGenericsで使われるTとかEとかのこと(1.4ではこのエラーメッセージはユーザバージョンでは使われる機会がないはず)。「タイプ変数」あたりが妥当な訳だろう。'dereference'は、参照(reference)から、それが指しているオブジェクトを参照すること、オブジェクトにアクセスすること。たとえば「int cannot be dereferenced」は、「intからはオブジェクトを参照できません(オブジェクトにアクセスできません)」「intはオブジェクトを参照できません」などが適訳。‘間接参照’では、たぶん多くの人にとって意味不明でしょう。

型変数xxxは yyyの戻り値の型で2回以上出現します。インスタンス生成されないままにはできません。(type variable xxx occurs more than once in result type of yyy; cannot be left uninstantiated)

型変数xxxは yyyの型で2回以上出現します。インスタンス生成されないままにはできません。(type variable xxx occurs more than once in type of yyy; cannot be left uninstantiated)

型xxxと型yyyの互換性がありません。両方ともzzzを定義していますが、戻り値の型が異なっています。(types xxx and yyy are incompatible; both define zzz, but with different return type)

文字リテラルが閉じられていません。(unclosed character literal)

コメントが閉じられていません。(unclosed comment)

文字列リテラルが閉じられていません。(unclosed string literal)

ラベルxxxは未定義です。(undefined label: xxx)

xxxの型パラメータを判別できません。(type parameters of xxx cannot be determined)

予期しない型
期待値 : xxx
検出値 : yyy
(unexpected type
required: xxx
found : yyy)

この文に制御が移ることはありません。(unreachable statement)
【解説】参照

デフォルトのコンストラクタ内に報告されない例外xxxが存在します。(unreported exception xxx in default constructor)

例外xxxは報告されません。スローするにはキャッチまたは、スロー宣言をしなければなりません。(unreported exception xxx; must be caught or declared to be thrown)
【解説】正訳:例外xxxが未報告です。xxxはcatchするか、またはthrowsしなければなりません。

サポートされていないエンコーディングです: xxx(unsupported encoding: xxx)

変数xxxはすでに代入されている可能性があります。(variable xxx might already have been assigned)

変数xxxはループ内で代入されている可能性があります。(variable xxx might be assigned in loop)

変数xxxは初期化されていない可能性があります。(variable xxx might not have been initialized)

ここで'void'型を使用することはできません。('void' type not allowed here)

型引数の数が不正です 。xxx個必要です。(wrong number of type arguments; required xxx)

クラスファイルxxxは不正です。
yyy
削除するか、クラスパスの正しいサブディレクトリにあるかを確認してください。
(bad class file: xxx
yyy
Please remove or make sure it appears in the correct subdirectory of the classpath.)
【解説】たとえば正しいpackage宣言のないクラスは、“不正”と見なされます。また逆に、packageに属するクラスを使うためのクラスパスの指定が間違っているときも、このエラーを食らいます。パッケージaaa.bbbに属するクラスファイルはディレクトリ/aaa/bbbに置かれますが、それらの正しいクラスパスは/aaa/bbbではなく、/aaaのすぐ上のルートディレクトリです。初心者はこのことをよく間違えます…参考解説を用意しました。

クラスxxxのシグニチャーが不正です。(bad class signature: xxx)

定数プールタグxxxが不正です。(bad constant pool tag: xxx)

定数プールタグyyyでのxxxが不正です。(bad constant pool tag: xxx at yyy)

シグニチャーxxxが不正です。(bad signature: xxx)

すべての基底クラスが、メンバです。(all your base class are belong to us)

yyyのxxxは wwwのzzzを実装できません。(xxx in yyy cannot implement zzz in www)

yyyのxxxは wwwのzzzをオーバーライドできません。(xxx in yyy cannot override zzz in www)

クラスファイルxxxに予想外の新バージョンがあります。(class file has later version than expected: xxx)

xxxは認識されない属性です。(unrecognized attribute: xxx)

yyyのxxxは wwwのzzzと競合します。(xxx in yyy clashes with zzz in www)

クラスファイルxxxに不正なクラスがあります。(class file contains wrong class: xxx)
【解説】たとえば、importしているパッケージのクラスに正しいpackage宣言がない、など。

エラーxxx個(xxx error)

エラーxxx個(xxx errors)

警告xxx個(xxx warning)

警告xxx個(xxx warnings)

ファイル xxx.classが見つかりません。(file xxx.class not found)

致命的エラー: メソッドxxxを検出できません。(Fatal Error: Unable to locate method xxx)

致命的エラー: クラスパスまたはブートクラスパスでパッケージ java.langを検出できません。(Fatal Error: Unable to locate package java.lang in classpath or bootclasspath)

ファイルにクラスxxxが含まれていません。(file does not contain class xxx)

クラスファイルの開始が不正です。(illegal start of class file)

互換性のない型(incompatible types)

変換できない型(inconvertible types)

クラス(class)

コンストラクタ(constructor)

識別子(xxx)(identifier(xxx))

インタフェース(interface)

メソッド(method)

パッケージ(package)

型変数の範囲(bound of type variable)

値(value)

変数(variable)

xxx互換性のない戻り値の型を使おうとしました。(xxx; attempting to use incompatible return type)

精度が落ちている可能性(possible loss of precision)
【解説】たとえばfloatやdoubleの計算結果をintとして使うときにintへのキャストを忘れると、このエラーを食らいます。小さいもの(float, byte, ...)を大きいもの(double, char, ...)に代入する…問題なさそうな…場面でも、浮動小数点数では小数部の表現が違ってきますし、整数では「有符号数を無符号数へうかつに代入」という問題も生じます。
  float a, b;
  int i;
  ...
  i = a + b; //エラー
  i = (int)(a + b); //OK

R)再開, A)中止>(R)esume, A)bort>)

(ソースが利用不可)((source unavailable))

クラス(class)

クラスまたは配列(class or array)

参照(reference)

ファイルxxxにアクセスすることができません。(unable to access file: xxx)

型変数xxxは宣言されていません。(undeclared type variable: xxx)

クラスファイル内のUnicode文字列はサポートされていません。(unicode string in class file not supported)

[xxxを確認中]([checking xxx])

[xxxを読み込み中]([loading xxx])

[xxxmsで構文解析完了]([parsing completed xxxms])

[xxxを構文解析開始]([parsing started xxx])

[xxxを組み替え中]([retrofitting xxx])

xxxをyyyで組み替え中です。(retrofitting xxx with yyy)

xxxを型パラメータ yyy、スーパータイプ zzz、インタフェースwwwで組み替え中です。(retrofitting xxx with type parameters yyy, supertype zzz, interfaces www)

[合計 xxxms]([total xxxms])

[xxxを書き込み完了]([wrote xxx])

クラスファイルのバージョン xxx.yyyは不正です。zzz.wwwであるべきです。(class file has wrong version xxx.yyy, should be zzz.www)

xxxは推奨されないAPIを使用またはオーバーライドしています。(xxx uses or overrides a deprecated API.)

一部の入力ファイルは推奨されないAPIを使用またはオーバーライドしています。(Some input files use or override a deprecated API.)

注:(Note:)
詳細については、 -deprecationオプションを指定して再コンパイルしてください。(Recompile with -deprecation for details.)

警告:(warning:)
【解説】以下は、警告メッセージです:

xxxは未確認のオペレーションを使っています。(xxx uses unchecked operations.)

一部の入力ファイルは未確認のオペレーションを使っています。(Some input files use unchecked operations.)

詳細については、 -warnuncheckedオプションを指定して再コンパイルしてください。(Recompile with -warnunchecked for details.)

リリース 1.4では'assert'はキーワードなので識別子として使うことはできません。(as of release 1.4, 'assert' is a keyword, and may not be used as an identifier)
【解説】これは、assertがサポートされている、という情報メッセージです。エラーメッセージだと思うと混乱することがあります。

finally節が正常に完了できません。(finally clause cannot complete normally)

yyyのxxxは推奨されません。(xxx in yyy has been deprecated)

不正な非ASCII数字です。(illegal non-ASCII digit)

caseに fall-throughする可能性があります。(possible fall-through into case)
【解説】ひとつのcaseの処理の最後にbreak文がないと、次のcaseが続けて実行されてしまいます。井戸のふたが腐っていたので、ずぼっと踏み抜いて下に落ちてしまった…fall-throughにはそんな語感がありますね。

xxxからyyyの代入は未確認です。(unchecked assignment: xxx to yyy)
【解説】未確認とは、私(javac)はこれに関してチェックしていない、チェックの機能が未サポート、という意味です。

raw型yyyの変数xxxへの代入は未確認です。(unchecked assignment to variable xxx of raw type class yyy)

raw型yyyのメンバとしてのxxxの呼び出しは未確認です。(unchecked call to xxx as a member of the raw type yyy)

型xxxへのキャストは未確認です。(unchecked cast to type xxx)

汎用配列の作成は未確認です。(unchecked generic array creation)

メソッドの呼び出しが未確認です 。yyyのxxxは(zzz)に適用されます。(unchecked method invocation: xxx in yyy is applied to (zzz))



###以下はjavacの前処理プログラムからのメッセージの一部です###

xxxの書き込みエラーです。yyy(error writing xxx; yyy)

ファイルが見つかりません: xxx(file not found: xxx)

xxxは無効な引数です。(invalid argument: xxx)

xxxは無効なフラグです。(invalid flag: xxx)

xxxは無効なソースバージョンです。(invalid source release: xxx)

xxxは無効なVMバージョンです。(invalid target release: xxx)

ソースファイルがありません。(no source files)

xxxには引数が必要です。(xxx requires argument)

リリース 1.4のソースにはリリース 1.4のターゲットが必要です。(source release 1.4 requires target release 1.4)
【解説】ターゲットとは、Java実行環境、すなわちJVMのことです。

コンパイラで例外が発生しました。(xxx)Bug Paradeで同じバグが登録されていないことをご確認の上、実行したプログラムと以下に出力されている診断情報を含め、Java Developer Connection(http://java.sun.com/cgi-bin/bugreport.cgi)においてバグの登録をお願いいたします。ご協力ありがとうございます。(An exception has occurred in the compiler (xxx). Please file a bug at the Java Developer Connection (http://java.sun.com/cgi-bin/bugreport.cgi) after checking the Bug Parade for duplicates. Include your program and the following diagnostic in your report. Thank you.)

入出力エラーが発生しました。
詳細は次のスタックトレースで調査してください。
(An input/output error occurred.
Consult the following stack trace for details.)

システムリソースが不足しています。
詳細は次のスタックトレースで調査してください。
(The system is out of resources.
Consult the following stack trace for details.)


★違うエラーを指摘された例

(1)正しい(?)エラー:オブジェクトとメソッドの間にドットを書きませんでした:

    btn setAction(insAction);


もらったエラーメッセージ:

    HTMLInsTest.java:19: ';' がありません。
        btn setAction(insAction);
                     ^
    エラー 1 個

  この、“正しくないエラーメッセージ”を出したjavacさんの言い分は、たぶ
んこうです:「名前と名前の間に、btn setActionのようにスペースがあるのは、
変数などの宣言ですよ。宣言は、ひとつの完結したJavaの文ですから、あなたも
とっくにご存じのように、最後に必ずセミコロンが必要です。」つまりjavacは、
そんなに高度な構文解析をするわけではなくて、ソースを単純にアタマからシリ
方向へと単線的に読んでいくだけのようですね。


(2)正しい(?)エラー:カンマを書き忘れました:

     ctif.writeFile(ctif.frame "SiggyFrame.png");


もらったエラーメッセージ:

    ComponentToImageFile.java:70: ')' がありません。
        ctif.writeFile(ctif.frame "SiggyFrame.png");
                                  ^
    エラー 1 個



★極端なエラーメッセージの例(1)

本当のエラー:Stringの配列の、初期化付き宣言で、使用する括弧をひとつだけ間違えました:

【正】String[] months = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug",
       "Sep", "Oct", "Nov", "Dec"};

【誤】String[] months = ("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug",
       "Sep", "Oct", "Nov", "Dec"};


実際に出たエラーメッセージ(なんと!6つも出ました!…すべて、上のたったひとつの間違いに対するエラーです)

TestZeller.java:6: ')' がありません。
     = ("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug",
             ^
TestZeller.java:7: ';' がありません。
        "Sep", "Oct", "Nov", "Dec"};
                                  ^
TestZeller.java:10: 型の開始が不正です。
try{
^
TestZeller.java:29: <identifier>がありません。
    System.exit(0);
                  ^
TestZeller.java:31: 'class' または 'interface' がありません。
}
^
TestZeller.java:32: 'class' または 'interface' がありません。
^
エラー 6 個

★極端なエラーメッセージの例(2)

本当のエラー : ++と書くべきところに+;と書きました:
 
【正】for (int i = 0; i < sa.length; ++i){

【誤】for (int i = 0; i < sa.length; +;i){


実際に出たエラーメッセージ

ArraySortDemo.java:18: 式の開始が不正です。
    for (int i = 0; i < sa.length; +;i){
                  ^    ...セミコロンの下
ArraySortDemo.java:18: 文ではありません。
    for (int i = 0; i < sa.length; +;i){
                  ^     ... +の下
ArraySortDemo.java:18: 文ではありません。
    for (int i = 0; i < sa.length; +;i){
                   ^   ... iの下
ArraySortDemo.java:18: ';' がありません。
    for (int i = 0; i < sa.length; +;i){
                    ^  ... )の下


★極端なエラーメッセージの例(3)

本当のエラー:ドットを書くべきところにカンマを書きました:

【正】text.setText(e.getDescription());

【誤】text,setText(e.getDescription());


実際に出たエラーメッセージ

WebBrowser.java:51: 文ではありません。
               text,setText(e.getDescription());
               ^
WebBrowser.java:51: ';' がありません。
               text,setText(e.getDescription());
                   ^


クイズ1:
  Javaのキーワード(予約語)を、変数名に使うと、どんなエラーメッセージが出るでしょうか?。たとえば:
int this = 62905;
答えは、簡単なプログラムを書いてご自分で確認してください。コンパイラのエラーメッセージは、もうちょっと親切になってもいいよなー、と私は感じました。:)

《ページのトップへ》

--end of document--


AWTとSwingのペイント(paint)の仕組み Java API javadoc改善運動! Javaの手帖 Javaの手帖--GUI分冊 /ひとつ上をゆくJavaの教科書 「JavaServer Faces完全ガイド」補遺
javacのエラーメッセージ解説 「Javaの哲学」の恥かき 「Javaによるテキスト処理」の恥かき 「モア・サーブレット」の恥かき 恥かきのホームページ フォーラム「JavaBeginner」
UIDefaultsのkeyとデフォルト値「コア・サーブレット」の恥かき comp.lang.java.guiのFAQ日本語訳 「入門 正規表現」 「Javaネットワークプログラミングの真髄」 「Java並行処理プログラミング」