0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Java入門】付録A よくあるエラーと対処法

0
Last updated at Posted at 2026-10-31

エラーには、保存したときに Eclipse が赤い「×」で教えてくれる コンパイルエラー と、実行したときにコンソールに赤い文字で出る 実行時のエラー(例外) があります。この付録では、それぞれの読み方と、この教材でよく出るものの対処をまとめます。各章の「うまくいかないときは」も参照してください。

A.1 コンパイルエラーの読み方

Eclipse は、ファイルを保存するたびにコンパイルします。文法の間違いがあると、次の場所に印が付きます。

  • エディターの行の左端に赤い「×」。マウスを合わせると理由が表示される
  • 間違いのある部分に赤い波線
  • パッケージ・エクスプローラーのファイル名・パッケージ名・プロジェクト名に赤い「×」
  • 画面の下の「マーカー」ビューに一覧(「Java の問題」の左の「>」をクリックして開く)。ダブルクリックするとその行に飛ぶ

エディターの行の左に赤い×、マーカー・ビューにエラーの一覧
図A-1 コンパイルエラーの表示(赤枠:行の左の「×」と「マーカー」ビュー)

コンパイルエラーがあるクラスは実行できません。実行しようとすると、エラーがあるが起動を続行するかという確認が出ますが、「続行」を押しても、エラーのある行で止まります。先にエラーを直してください。

【便利な使い方】エラーは上から順に直す

; や } が1つ足りないだけで、その後ろの行にも次々とエラーが付くことがあります。いちばん上のエラーを直して保存すると、残りが消えることが多いです。理由の文が分かりにくいときは、エラーの行の 直前の行 も見てください。

A.2 よくあるコンパイルエラー

表示される理由 原因と対処 章
構文エラーがあります。";" を挿入して… 文の終わりの ; が無い。半角の ; を付ける 第3章
構文エラーがあります。"}" を挿入して… ブロックを閉じる } が足りない。{ と } の数を合わせる 第3章
トークン "〇〇" に構文エラーがあります。このトークンを削除してください 余分な記号や、全角の記号・空白が混ざっている。半角で書き直す 第3章・第5章
文字列リテラルがダブル・クォートによって正しく閉じられていません " が片方しかない、または全角の ”。半角の " で囲む 第3章
〇〇 を変数に解決できません 宣言していない変数を使っている。名前の打ち間違い、大文字と小文字の違い、スコープの外(別のメソッドや for 文・try ブロックの外)で使っている 第4章・第6章・第7章・第12章
〇〇 を型に解決できません クラス名の打ち間違いか、import が無い。クラス名の末尾で Ctrl + Space を押して import を入れる 第9章
〇〇 を解決できません System を system と書いたなど、クラス名の大文字・小文字の違い 第3章
重複ローカル変数 〇〇 同じ名前の変数を2回宣言している。2回目は型を付けずに代入だけを書く 第4章
ローカル変数 〇〇 が初期化されていない可能性があります 値を入れる前に変数を使っている。宣言と同時に値を入れる。switch で値を入れるときは default も書く 第4章・第14章
型の不一致: 〇〇 から △△ には変換できません 型の違う値を代入している(double を int に、String を int に など)。if (age = 27) のように == を = と書いたときも出る 第4章・第5章
型 int のリテラル 〇〇 は範囲外です int に入らない大きな数。long にして末尾に L を付ける 第4章
final のローカル変数 〇〇 には代入できません final の定数に代入している。値を変えるなら final を外す 第4章
メソッド 〇〇(…) は型 △△ で未定義です メソッド名の打ち間違いか、そのクラスにそのメソッドが無い。getter・setter の名前(getName)を確かめる 第7章・第9章
型 △△ のメソッド 〇〇(…) は引数 (…) に適用できません 呼び出しの引数の数・順番・型が、定義と合っていない 第7章
このメソッドは型 〇〇 の結果を戻す必要があります 戻り値の型を書いたのに return が無い 第7章
void メソッドは値を戻すことができません void のメソッドで return 値; と書いている 第7章
非 static フィールド 〇〇 を static 参照できません
型 △△ の非 static メソッド 〇〇(…) を static 参照することはできません
main などの static なメソッドから、オブジェクトを指定せずにフィールドやメソッドを使っている。new で作ったオブジェクトの変数を付ける 第8章
コンストラクター 〇〇(…) は未定義です 引数付きのコンストラクタを書いたクラスで new 〇〇() と書いた、または引数の型・数が違う 第8章
フィールド 〇〇 は不可視です
メソッド 〇〇(…) は型 △△ で不可視です
private のフィールドやメソッドを、別のクラスから使っている。getter・setter を使う。別のクラスから呼ぶメソッドには public を付ける 第7章・第9章・第10章
インポートされた 〇〇 は見つかりません import に書いたパッケージ名・クラス名が間違っている 第9章
宣言されたパッケージ "〇〇" が、予想されているパッケージ "△△" に一致しません ファイルの置き場所と package の行が合っていない 第9章
型 △△ は継承された抽象メソッド 〇〇 を実装する必要があります implements したインターフェースのメソッドを書いていない 第10章
型 △△ のメソッド 〇〇(…) はスーパータイプ・メソッドをオーバーライドまたは実装する必要があります @Override を付けたメソッドの名前や引数が、親のメソッドと違う 第10章
処理されない例外の型 〇〇 チェック例外を起こすメソッドを呼んでいる。この教材では使わないので、別のクラスを補完で選んでいないかを確かめる 第12章
到達不能コード return や throw の後ろに文を書いている 第12章
public 型 〇〇 はそれ独自のファイル内に定義されなければなりません クラス名とファイル名が違う。クラス名を直すか、ファイル名を変える(右クリック → リファクタリング → 名前変更) 第9章

A.3 実行時のエラーの読み方

実行したときにコンソールに赤い文字で出るのが、例外の スタックトレース です(第12章)。

コンソール
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "ch08.Employee.print()" because "e4" is null
	at ch08.Main.main(Main.java:18)
  1. 1行目の Exception で終わるクラス名で、何が起きたか を知る(NullPointerException)
  2. 1行目の : の後ろで、詳しい原因 を知る("e4" is null)
  3. at の行のうち、自分のパッケージ名で始まる いちばん上の行 で、どこで起きたか を知る(Main.java の 18 行目)。リンクをクリックすると、その行に飛ぶ

A.4 よくある実行時のエラー

例外 原因と対処 章
NullPointerException
Cannot invoke "…" because "〇〇" is null
変数 〇〇 が null のまま、メソッドやフィールドを使った。その変数に値を入れている場所を確かめる。because the return value of "…" is null なら、メソッドが null を返している(findByEmpId で見つからない、setter を呼んでいない など) 第8章・第12章
ArrayIndexOutOfBoundsException
Index 3 out of bounds for length 3
要素が3つの配列に添字 3 でアクセスした。添字は 0 から「要素の数 − 1」まで。for 文の条件は i < 配列.length 第6章
ArithmeticException
/ by zero
整数を 0 で割った。割る数が 0 にならないかを if で確かめる 第12章
NumberFormatException
For input string: "abc"
数に変えられない文字列を Integer.parseInt に渡した。try〜catch で受け止めるか、渡す文字列を確かめる 第11章・第12章
IllegalArgumentException 引数の値が正しくないときに、メソッドが自分で起こした例外。メッセージを読んで、渡した値を確かめる 第12章
プログラムが終わらない(コンソールに「<終了>」が付かない) while の条件がいつまでも true(無限ループ)。コンソールの赤い終了ボタンで止め、繰り返しの中で条件に使う変数を変えているかを確かめる 第6章

A.5 Eclipse の操作でのつまずき

症状 原因と対処
実行しても前の結果のまま変わらない 保存していない。エディターのタブの「●」が消えているかを確かめる(第2章)
実行ボタンを押したら、別のクラスが実行された 実行ボタンは、エディターで開いている(または選んでいる)クラスを実行する。実行したいクラスをエディターで開くか、右クリックして「実行 → Java アプリケーション」を選ぶ(第2章)
右クリックメニューに「実行 → Java アプリケーション」が無い、または「選択にはメイン型が含まれていません」と表示される そのクラスに public static void main(String[] args) が無い。main のあるクラスを右クリックする(第3章)
クラスを作ったら「パッケージ」の欄が空で、package の行が無い src やプロジェクトを右クリックして作った。クラスを削除し、入れるパッケージを右クリックして作り直す(第3章)
「新規 Java プロジェクト」の JRE の一覧に JavaSE-17 が無い Pleiades の Full Edition でない可能性がある。「開発環境の準備」の「Pleiades のダウンロード」 の手順で Full Edition をダウンロードし直す
補完(Ctrl + Space)で候補が出ない 日本語入力がオンになっている(画面右下の「あ」)。半角/全角 キーでオフにする。コメントや文字列の中では補完は効かない
コンソールの日本語が文字化けする プロジェクトの文字コードの設定が違う。Pleiades の既定は UTF-8 で、この教材の手順どおりなら化けない。プロジェクトを右クリック → プロパティー → リソース の「テキスト・ファイル・エンコード」が UTF-8 かを確かめる
エディターのタブが増えすぎた タブを右クリック → 「すべて閉じる」。開き直すには、パッケージ・エクスプローラーでファイルをダブルクリックする
画面の配置が崩れた、ビューが消えた メニューの ウィンドウ → パースペクティブ → パースペクティブのリセット(「開発環境の準備」の「画面を使いやすく整える」)

Eclipse の操作の一覧は、付録B「Eclipse 操作早見表」 にまとめています。


前へ

第14章 社員管理のクラスを作る

次へ

付録B 文法早見表と用語集

目次へ

【Java入門】目次

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?