HOです。


前回 、メモ帳でJavaプログラム作成する方法を取り上げました。

今回は、コマンドプロントを使って、

プログラムをコンパイルしてみたいと思います。



コマンドプロンプトを実行するにあたり、

あらためて、私の設定内容をまとめます。


1.JDKのインストール先

   「C:\Program Files\Java\jdk1.6.0_33\」(初期値)


2.今後作成するJavaプログラムの保存先

   「D:\Java\work\」


これからの説明は以上の前提で説明しています。

ですから、もし同じようにしてみようとお考えの方は、

以上の1,2の場所をご自身の設定に置き換えて参照ください。




コマンドプロンプトの起動


「スタート」⇒「プログラム」⇒「アクセサリ」⇒「コマンドプロンプト」

 で起動できますが、


さらに早く起動する方法として、

 「スタート」⇒「ファイル名を指定して実行」⇒「cmd」入力し、「OK」

で起動できます。


※WindowsVistaなどは、

  「スタート」⇒検索ボックスに「cmd」と入力し、Enterで表示されます。


起動すると以下のような表示となります。
ドリームサポートネットーワークのブログ-c01起動

「C:\Documents and Settings\○○> 」

という部分は、現在の作業ディレクトリを表わしています。
※ディレクトリというのは、Windowsのフォルダと同じようなものです。



コマンドプロンプトを起動したら、

早速、前回作成したプログラムをコンパイルしてみたいと思います。





コマンドプロンプトを使ったディレクトリーの移動


前回の記事で作成した「Test01.java」の保存先は、「D:\Java\work\」でした。

コンパイルする際、以上の場所にディレクトリーを移動しておくなら、

コンパイルする際、いくらか入力が楽になります。

それで、コマンドプロンプト内で

どのようにディレクトリーを移動できるか簡単に取り上げます。


ディレクトリー移動するには、「cd」コマンドを使います。

そして、移動先に応じて以下の操作を行います。



1.ドライブを変更して移動する方法


 「cd」コマンドの後に「(空白)」と「/d」オプションをつけます。

 続けて「(空白)」+「ドライブ名:(\ディレクトリ名)」と入力することで、

 ドライブを変更した上で、指定したディレクトリーに切り替えることができます。


 例えば、私の環境では、以下のように入力します。

 実行するには「Enter」キーを押します。

 ドリームサポートネットーワークのブログ-c02ドライブ移動

 これで、Dドライブの「Java」フォルダ内の「work」フォルダに移動できました。



2.同じドライブ内で移動する方法


 コマンドプロントの「>」の左側にあるのは、現在の作業ディレクトリーを示します。

 そのディレクトリーの、上位のフォルダに移動する場合は、

 「cd」コマンドに空白を入れて「..」(ドット2つ)入力します。


 例えば、以下のように入力し、実行すると、
 ドリームサポートネットーワークのブログ-c03上位ディレクトリ移動
 「work」フォルダの上位フォルダである「Java」フォルダに移動できました。



 また現在のディレクトリー内にある下位フォルダに移動する場合は、

 「cd」コマンド+(空白)+(フォルダ名)を入力します。


 例えば、以下のように入力し、実行すると、
 ドリームサポートネットーワークのブログ-c04下位ディレクトリ移動

 「Java」フォルダ内にある「work」フォルダに移動できました。



 ディレクトリーを「Test01.java」ファイルのあるフォルダに移動できたなら、

 ついに「Test01.java」ファイルをコンパイルしましょう。




コマンドプロンプトの実行


 コンパイルするためには、JDKにある「javac.exe」というツールを使います。


 このツールは、

 JDKをインストールしたフォルダ内にある「bin」フォルダ内にあります。

 初期値でインストールした私のパソコンでは、

 「C:\Program Files\Java\jdk1.6.0_33\bin\」の中に「javac.exe」があります。



 これをコマンドプロンプトで実行するには、以下のようにします。

 「(JDKインストールした場所)\bin\javac.exe」

  +(空白)+(コンパイルするJavaファイル名)

 

 私のパソコンでは、

 「"C:\Program Files\Java\jdk1.6.0_33\bin\javac.exe" Test01.java」と入力し、

 実行します。
ドリームサポートネットーワークのブログ-c05フルパスのコンパイル実行

 ※「""」で囲ったのは、パスの中で空白(~\Program Files\~)があるためです。

   パスに空白がなければ、「""」で囲まなくても大丈夫です。



 さあ、ちゃんとプログラムがコンパイルされるでしょうか!?

 ・・・

 ドリームサポートネットーワークのブログ-c06エラー発生

 あれっ!・・・うまくコンパイルできません!

 コンパイル失敗です・・・。




 でもこのシリーズは「七転び八起きJavaの道」です。

 つまづいても何度でも立ち上がりますよ!




 では、原因を考えてみます。

 

 エラー内容を見ると、「test01.java:3 ';'がありません。」とあります。


 「test01.java:3」というのは、

 今コンパイルした「Test01.java」の3行目のエラーという意味です。


 次の行に、 

 「System.out.println("Hello! 7korobi8oki !!") 」とあり、

 この一番右側の下に「^」があります。

 ここが、エラーとなった部分を示しています。



 これで、このエラーの原因がわかりました。

 実は、Javaプログラム一文の最後には、

 「;(セミコロン)」を入れるというルールがあります。

 それが抜けていたためにエラーが出ていたのでした。



 それで、コマンドプロンプトはそのまま閉じないでおき、

 メモ帳から再度「Test01.java」を開き、以下のように修正します。

---------------------------------------------

class Test01{

  public static void main(String[] args) {

    System.out.println("Hello! 7korobi8oki !!");

  }

}

---------------------------------------------

 修正したら、「Test01.java」を上書き保存し、

 再度コマンドプロントのウィンドウをアクティブにします。


 そして、先ほどのコマンドを実行します。

 もう一度同じコマンドを実行する場合には、

 キーボードの「↑」キーを押せば、先ほど入力したコマンドが再度表示されます。
ドリームサポートネットーワークのブログ-c05フルパスのコンパイル実行


 では、再度コンパイル実行してみましょう。

 うまくコンパイルできるでしょうか・・・

 ドリームサポートネットーワークのブログ-c07コンパイル成功

 しばらくすると、このように表示されました。


 ・・・成功?

 のようですが、どうすればコンパイルできたと確認できるでしょうか。


 そういえば以前、Javaを実行するためのソフト(JRE) で考えましたが、

 Javaは機械語に直接コンパイルするのではなく、

 「中間コード」にコンパイルするということでした。


 ということは、「Test01.java」の中間コードが作成されているはずです。


 それでは、「Test01.java」のあるフォルダを見てみましょう。
ドリームサポートネットーワークのブログ-c08クラスファイル

 すると、「Test01.class」という見慣れないファイルが出来ています!


 このクラスファイルが「中間言語」です。 

 これをJavaVMを使って実行すると、ついにプログラムが、

 パソコンなどで実際に動くことができます。



 いやー、少しつまづきましたが、何とかコンパイルすることができました。

 とりあえず、コンパイル成功としましょう!





 では、ここで、今日のポイントを整理してみたいと思います。


 ・コマンドプロンプトで、ディレクトリーを移動する場合、「cd」コマンドを使う。 

 ・コンパイルするには、JDKをインストールしたフォルダの中の

   「bin」フォルダ中にある「javac.exe」を使う。

 ・コンパイルを実行して、エラーが出た場合、エラーメッセージを読むことで、

   原因を考えることが出来る。

 ・コンパイルが成功すると、中間言語である「クラスファイル」が作成される。




 次回 は、コンパイルしてできたクラスファイルを、

 JavaVMを使ってパソコン上で実行してみたいと思います。