【初心者でもわかる】Javaのコンパイルとは?とその方法

  • このエントリーをはてなブックマークに追加
  • Pocket
javaのコンパイル

コンパイルとは、プログラムの翻訳作業のことだ。

Javaプログラムはプログラムを書いてすぐに実行をすることはできない。そのプログラムを機械がわかるように翻訳してはじめて、コンピュータが実行をしてくれる。

このページでは「コンパイルとは」のもう少し詳しい説明と、Javaのコンパイル方法についてまとめてご紹介しよう。

コンパイルとは?

コンパイルとコンパイラ

コンパイルとは、プログラム言語をコンピュータが理解できる言語に変換することだ。そのための翻訳ソフトウェアをコンパイラという。

ほとんどのコンパイラは、コンピュータが直接実行できるコンピュータ特有の言語に合わせ翻訳する。そして、それを直接実行する。

Javaだけ少し特殊

コンパイルが必要なプログラミング言語はたくさんあるが、その中でもJavaは特殊だ。

Javaは「どんな環境でも動く!」、Windowsだろうと、Macだろうと、Linuxだろうと他の何かだろうとひとつのプログラムで動くという信念で作られている。

そのため、特定のコンピュータが理解出来る機械語に翻訳するのではなくて、どのコンピュータでも使える中間言語というものを作成する。

下記のイメージだ。

javaのコンパイル

実行するときは、それぞれのコンピュータにインストールされたJavaの仮装マシンが機械語に翻訳して実行してくれる。

プログラムを実行するために2段の翻訳機があるようなものだ。日本語から中国語、ドイツ語に翻訳するのではなくて、必ず英語に翻訳してから他の言語に翻訳するイメージになる。

Javaのコンパイル方法

では、実際にJavaプログラムをコンパイルしてみよう。

ここでは、WindowsのDOS窓からコマンドによりJavaのコードをコンパイルすることを、前提として説明を行う。コンパイルするための環境のインストール方法は下記のURLを参考にできる。

Javaインストール:http://eng-entrance.com/category/java/java-install

Javaファイルを置くフォルダの作成

まずはJavaファイルを置くフォルダを作成しよう。作成場所はどこでもいいが、わかりやすいのでCドライブの直下などがいいだろう。

下記のように「JavaSample」というフォルダを作ってみる。

javasample

Javaのプログラムファイルを保存する

続いてテキストエディタを使用して、以下のプログラムを打ち込んでソースファイルを作成する。

テキストエディタは何を使っても構わない。Windows標準のメモ帳でも大丈夫だ。

memo

このファイルを「HelloWorld.java」という名前をつけて先ほどのフォルダに保存する。

コマンドプロンプトを開く

ここからが少々難しい。コマンドプロンプトというものを開く。

メニューを開いてアクセサリを選択する。

アクセサリ

その中のコマンドプロンプトを選択する。

コマンドプロンプト

するとコマンドプロンプトが開く。

cmd

これがコマンドプロンプトと呼ばれる、コンピュータをコマンドで直接操作する画面だ。例えばファイルのコピーをしたり、フォルダを作成したりなどの作業を一通りこの画面で実施することができる。

Javaのコンパイル作業はここで行っていくことになる。はじめからコマンド操作のすべてを理解するのは難しいと思うので、まずはJavaコンパイルに必要なところだけ見ておこう。

Javaのコンパイル作業

まず、以下のcdコマンドをコマンドプロンプトに入力し、ファイルを保存したフォルダC:\JavaSampleに移動する。

cdとはChange directoryの略で、そのフォルダに移動しますよ、という意味だ。CドライブのJavaSampleフォルダに移動するという意味になる。

cd

移動したフォルダに保存したJavaのファイルがあるかをdirコマンドで確かめよう。

dir01

以下のコマンドを打ち込み、先ほどのソースファイルをコンパイルする。コンパイルのためのコマンドはjavacである。コマンドの入力の仕方は簡単だ。

javac  Javaのファイル名

実際に、JavaのファイルHelloWorld.javaをコンパイルするためのJavacコマンドを入力する。ソースファイルに誤りが無ければ、次のようになるはずだ。

javac

コンパイルの結果をdirコマンドで見てみよう。

dir

コンパイルに成功すると先ほどのフォルダに「HelloWorld.class」が作成されている。これでコンパイルは成功だ。

実行の仕方は次ページで紹介をしているので続きはそちらから確認しよう。

コンパイルエラー

先ほどは正常にコンパイルできた例を紹介したが、記述内容に誤りがあると、コンパイルを実行した段階でエラーが表示される。初心者にありがちなコンパイルエラーと対処方法を紹介する。

セミコロン「;」が不足

まず、コンパイルエラーの見方から説明しよう。

わざとエラーのあるプログラムをコンパイルしてみた。エラーを見つけると、コンパイラはエラー情報を表示する。

error01

そのエラー情報からエラーの原因を見つけることができる。次の図はその方法を示している。

エラーの説明

エラーの場所が、ファイル名→ファイルの先頭からの行数→エラーのカラム位置というようにエラーの場所がすぐに分かるようになっている。

エラーの理由も表示される。セミコロン「;」が不足しているために発生しているエラーだ。

Javaの記述ルールは、1つの命令ごとにセミコロン「;」をつける決まりだ。

ダブルクオーテーション「”」が不足

これは少々分かりにくいが、「Hello World」の文字列の終わりのダブルクオーテーション「”」が不足していると、こんなエラーが起きる。

コンパイル後にエラーが表示された画面を示す。

error02

2つ目のエラーに「エラー: ';'がありません」とあるが、これは最初のエラー(「”」で閉じられていないエラー)の為に、文字列の終わりが判断できず、結果として命令文の終わりが見つけられないことから起きているエラーだ。

全角空白文字

これも初心者は意外とハマりやすいエラーだ。このエラーは、本来「半角空白」文字を入れるべきところに、「全角空白」文字を入れてしまったことから発生している。

コンパイル後にエラーが表示された画面を示す。

error03

初心者が書籍やWebで紹介されているソースコードを、そのまま打ち込んでいると意外と起こりやすい。見た目でも違いがわからないので、何故エラーなのかで頭を抱えてしまうことも珍しくない。

このエラーを回避するには、全角空白を視覚的に表現してくれるエディタを使うとよいだろう。

メモ帳で開いた例:

memo

視覚的に表現してくれるエディタの例(サクラエディタ):

sakura

このエディタで表示すると、3行目の「public」の後ろに全角の空白が入っていることがわかる。

ファイル名とクラス名が異なる

このエラーは、ソースファイルに記述されているクラス名が「HelloWorld」であるのに対し、ファイル名を「Hello.java」としたために発生している。

error04

Javaでは、一つのファイルに一つのクラスを記述し、ファイル名は「クラス名.java」とする決まりだ。

閉じ括弧「}」

このエラーが一番やっかいなエラーだ。

コンパイルし後にエラーが表示された画面を示す。

error05

この例は短いソースコードなので、とじ括弧「}」が不足していることがすぐわかるが、数十行のプログラムで、if(){}やfor(){}のような段落のとじ括弧が不足していると、非常にわかりづらい。

開始括弧{一つに対し、とじ括弧}一つが対応するが、二段三段と入れ子になっていると、別のとじ括弧と対応してしまい、結果として後のほうでとじ括弧が足りないという事態になる。そのため、エラーとして表示されている行番号の付近にとじ括弧が不足しているとは限らないからである。

まとめ

このページでは「コンパイルとは」と、Javaのコンパイル方法についてお伝えした。

コマンドプロンプトを使ったことがないと難しいと思うかもしれないが、気合を入れる必要はない。すぐに慣れるはずだ。

javac  Javaのファイル名

覚えておこう。

このファイルをどう実行していくのかなどは次の項目を確認していってほしい。

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できる。

短期間でエンジニアになる方法

・「まったくの初心者だけどエンジニアになりたい!」

・「プログラマーとして転職をしたい!」

という方はリナックスアカデミーの資料を見てみてください。短期間で未経験からエンジニアになることができるスクールとして15年間選ばれ続けてきた理由やノウハウが載った資料です。

エンジニアの入り口に立つために必要な勉強技術の最新動向本当に使えるIT資格学習に役立つ国からの奨励金などの情報が詰まっています。

無料で2,3日中にお手元にお届けします。


資料を見てみる

SNSでもご購読できます。

コメントを残す

*