【はじめてのJava】コンパイルエラー【プログラムの作り方編】
はじめてのJava
このシリーズでは、初めてJavaやプログラミングを勉強する方向けに、Javaによるプログラミングの基礎を説明していきます。
目標レベルは、Javaの資格試験の一つである「Oracle Certified Java Programmer, Silver」(通称Java Silver)に合格できる程度の知識の習得です。
はじめてJavaやプログラムに触れる方にもできるだけわかりやすい解説を心がけていきます。
プログラムの作り方編
プログラムの作成と実行の記事ではソースコードを作成、保存、ソースコードのコンパイル、プログラムの実行を行いました。
Javaの仕組みの記事ではJVMやmainメソッド、System.out.println()について説明しました。
今回は開発時のコツの1つとして、プログラムが上手く作成・実行できないときの原因と対処法を解説していきます。
開発時の注意点
ここではプログラム作成時のコツを見ていきます。プログラムはコツをつかむことで、作成にかかる時間が短くなったり、動かした際の問題点が起こりづらくなったりします。
今回はプログラムが上手く動かないときののポイントを紹介します。項目が多いので、一度に全部理解しきれなくて大丈夫です。不明点はあとから見返して少しずつ理解を深めていただければと思います。
Javaの試験を受ける場合は、別のシリーズとして執筆予定の例外処理シリーズを読んだ段階で「コンパイルエラー」「実行時例外」の2つが意識できれば大丈夫です。
なお、説明中に「Exception系」「RuntimeException系」「Error系」という言葉が出てきますが、これは便宜上筆者が付けた名称ですのでjavaで正式に使われている言葉ではありません。ご注意ください。
目次
コンパイルエラー
コンパイルエラー とは、ソースコードの中にコンパイラが理解できない部分が原因でコンパイルに失敗することです。Javaの文法上おかしな点があるためコンパイルに失敗します。
例えるなら、「I a pen.」と書かれた台本(ソースコード)をJVM用に翻訳しようとしている状態です。「I a pen.」では意味が分からないので翻訳できません。。
コンパイルエラーの例
以下はコンパイルエラーの例です。
エラーメッセージを確認すると Sample.javaの3行目 に問題があることが書いてあります。
さらにエラーメッセージ内には ^ の周辺に原因がある と書いてあります。
注意深くエラーメッセージやソースコードの該当箇所を確認すると、本来は大文字Sで始まるべきSystem.outが小文字s始まりのsystem.outになっていることが分かります。
コンパイルエラーの場合は、コンパイル時に「 どこに 」「 どんな 」問題があるかを教えてくれますので、それを参考に原因個所を特定、修正します。
補足:たまに 表示されている場所 や 原因部分 が本来の原因とずれている場合もあります。
特に { } の閉じ忘れや;のつけ忘れの際は ^ の位置と原因個所がズレていることが多いです。
よくあるコンパイルエラーの原因
Javaを触り始めたばかりの場合、以下のような原因でコンパイルエラーになることがよくあります。
例
- 大文字小文字を間違えている
- つづりを間違えている
- 行末の ; が抜けている
- . と , や ; と : などの記号を間違えている
- 開きカッコ ( { [ と閉じカッコ ) } ] の数があっていない(開いたカッコが閉じていない)
- { } ; などの記号が全角になっている
- 空白部分に全角スペースを利用している
対処方法
コンパイルエラーの場合はコンパイルした段階で失敗しますので、エラーメッセージを確認してソースコードを修正し、ソースコードの保存と再コンパイルをします。
ソースコードの修正をしても 保存を忘れると修正が反映されない ので注意してください。
対処方法の詳細はこちらのコラムに掲載予定です。
プチコラム:Exception系
Javaの文法の一つに「例外処理」というものがあります。「例外処理」では上記以外のコンパイルエラーのパターンとして「対応策を書いておかないとコンパイルできないもの(Exception系)」が出てきます。詳しくは例外処理のところで扱う予定ですので、今は覚えなくて大丈夫です。Javaの試験を受ける場合は例外処理を扱った際にセットで調べることをお勧めします。
ポイント
「コンパイルエラー」とはソースコード内にコンパイルできない箇所があって翻訳(コンパイル)に失敗すること。
例えるなら台本(ソースコード)に「I a pen.」と書かれている状態。
コンパイルエラーに対処する場合は、エラーメッセージを読んでソースコード内の原因個所を修正する。
ソースコードは修正しても保存しないと修正が反映されない。
プログラムの作り方編・次回の内容
今回はコンパイルエラーについて説明しました。プログラムの作り方編・次回は実行時に発生する問題について説明していきます。
はじめてのJavaシリーズの記事一覧はこちら
シリーズ全記事一覧
環境構築編
プログラムの作り方編
データ型と変数編