icon
icon

よくあるエラーも紹介!Javaプログラムにおけるコンパイルとは【初心者向け】

初心者向けにJavaプログラムにおけるコンパイルとは何か、コンパイルの仕方について解説しています。コンパイルする際によく起きるエラーもいくつかまとめています。Javaを扱うためには必ず必要なので、使い方を覚えておきましょう。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

この記事ではJavaプログラムにおけるコンパイルを説明します。

Javaはコンパイラ言語の一つです。処理を行う上でコンパイルは必ず必要になってくるので、しっかり理解しておきましょう。

 

なお本記事は、TechAcademyのJava講座の内容をもとに作成しています。

 

田島悠介

今回はコンパイルの仕組みについて勉強しよう。

大石ゆかり

田島メンター!コンパイルというと、Javaプログラムを実行する前に行うものですよね。実際にはどういうことをやっているんですか~?

田島悠介

コンパイルの役割は、ソースコードファイルをクラスファイルに変換することなんだ。なぜそのようなことをするのか、まずはそこから説明していこう。

大石ゆかり

お願いします!

コンパイルとは

一般にコンパイルとは、ソースコードファイル(人間の読み書きできる形式)を、コンピュータの実行できるプログラムファイルに変換することを指します。

Javaにおけるコンパイルとは、ソースコードファイル(.java)をクラスファイル(.class)に変換することを指します。

クラスファイルをJVM(Java Virtual Machine, Java仮想マシン)に読み込むことで、Javaプログラムを実行できます。

また、クラスファイルはプラットフォームに依存しません。つまり、Windows環境でコンパイルしてできあがったクラスファイルを、Mac環境で実行することも可能です。

 

ソースコードファイルとクラスファイルの違い

ソースコードファイルは人間が読み書きすることを前提にした形式です。一方、クラスファイルはバイトコードとも言い、機械(コンピュータ)が読むことを前提にした形式です。

一般に、クラスファイルを直接読み書きすることはありません。

 

田島悠介

コンパイルについての概要だね。

大石ゆかり

なるほど、コンピュータが分かるように変換する必要があったんですね。

田島悠介

次にコンパイルの手順と、エラーの例を見てみよう。

実際にやってみよう

環境

これから行う処理は、以下の環境を前提としています。

  • Windows 10 64ビット版
  • JDK 10
1時間でできる無料体験!

 

コマンドラインでコンパイルする方法

ソースコード C:UsersuserDocumentssrcHelloWorld.java をコンパイルするとします。

コマンドプロンプトを開きます。

次のコマンドでソースコードを置いてあるフォルダに移動します。

cd C:UsersuserDocumentssrc

次のコマンドでjavaファイルをクラスファイルにコンパイルします。

javac HelloWorld.java

コンパイルに成功すると、 HelloWorld.class ファイルができあがります。

次のコマンドでプログラムを実行します。

java HelloWorld

 

Eclipseでコンパイルする方法

Eclipseはデフォルトで自動でビルド(※)する設定となっています。

設定を無効化している場合は、画面上部のメニューを選択し、手動でビルドします。ショートカットコマンドはCtrl-bです。

(※)関連するソースコードをまとめてコンパイルすること。

 

[PR] Javaプログラミングで挫折しない学習方法を動画で公開中

ありがちなエラー

javacコマンドが見つからない

症状:javac と入力すると以下のエラーメッセージが表示されました。

原因:javacプログラムの置かれたフォルダにパスが通っていません。

対策:javacプログラムの置かれたフォルダにパスを通します。

 

シンボルを発見できない

症状:ソースコードをコンパイルすると以下のようなエラーになりました。

原因:未定義の変数を使用しています。
(自分では正しいと思っていても)変数名のタイプミスで発生しがちです。

対策:変数が定義済か確認します。

 

構文誤り その1

症状:ソースコードをコンパイルすると以下のようなエラーになりました。

原因:開きかっこと閉じかっこが対応していません。

対策:かっこの対応を訂正します。

 

構文誤り その2

症状:ソースコードをコンパイルすると以下のようなエラーになりました。

原因:行末のセミコロンが抜けています。

対策:行末にセミコロンを追加します。

 

参考

Eclipseでソースコードを記述している場合、エディタ上でこれらミスをわかりやすく警告してくれます。

警告メッセージをヒントに誤りを訂正します。

 

まとめ

ソースコードを実際に動作するプログラムに変換するため、Java開発ではコンパイルを繰り返し行います。

効率的に開発するため、Eclipseのような統合開発環境を使ったり、AntMavenのようなビルドツールを使ったりするのが一般的です。

入門向けJavaの学習サイトもまとめているので、合わせてご覧ください。

 

田島悠介

コンパイルの方法と、いくつかのエラーメッセージについて解説したよ。

大石ゆかり

コンパイル時のエラーにはこういう意味があったんですね。

田島悠介

エラーの見方を知っていると、どこで間違っていたのかがすぐ参照できるようになるよ。ぜひ頭に入れておこう。

大石ゆかり

了解です。ありがとうございました!

また、オンラインのプログラミングスクールTechAcademyでは、Java講座を開催しています。

JavaやServletの技術を使ってWebアプリケーションの開発を学ぶことができます。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、習得することが可能です。

この記事を監修してくれた方

橋本紘希(はしもとこうき)
システムインテグレータ企業勤務のシステムエンジニア

開発実績: Javaプログラムを用いた業務用Webアプリケーションや、基幹システム用バッチアプリケーションなどの設計構築試験。

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学で学習していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、マンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう カウンセラーやエンジニア・デザイナー があなたの相談に真摯に向き合います。

「自分に合っているか診断してほしい」
「漠然としているが話を聞いてみたい」

こんなささいな悩みでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する