HOです。
前回
、メモ帳でJavaプログラム作成する方法を取り上げました。
今回は、コマンドプロントを使って、
プログラムをコンパイルしてみたいと思います。
コマンドプロンプトを実行するにあたり、
あらためて、私の設定内容をまとめます。
1.JDKのインストール先
「C:\Program Files\Java\jdk1.6.0_33\」(初期値)
2.今後作成するJavaプログラムの保存先
「D:\Java\work\」
これからの説明は以上の前提で説明しています。
ですから、もし同じようにしてみようとお考えの方は、
以上の1,2の場所をご自身の設定に置き換えて参照ください。
コマンドプロンプトの起動
「スタート」⇒「プログラム」⇒「アクセサリ」⇒「コマンドプロンプト」
で起動できますが、
さらに早く起動する方法として、
「スタート」⇒「ファイル名を指定して実行」⇒「cmd」入力し、「OK」
で起動できます。
※WindowsVistaなどは、
「スタート」⇒検索ボックスに「cmd」と入力し、Enterで表示されます。
起動すると以下のような表示となります。
「C:\Documents and Settings\○○> 」
という部分は、現在の作業ディレクトリを表わしています。
※ディレクトリというのは、Windowsのフォルダと同じようなものです。
コマンドプロンプトを起動したら、
早速、前回作成したプログラムをコンパイルしてみたいと思います。
コマンドプロンプトを使ったディレクトリーの移動
前回の記事で作成した「Test01.java」の保存先は、「D:\Java\work\」でした。
コンパイルする際、以上の場所にディレクトリーを移動しておくなら、
コンパイルする際、いくらか入力が楽になります。
それで、コマンドプロンプト内で
どのようにディレクトリーを移動できるか簡単に取り上げます。
ディレクトリー移動するには、「cd」コマンドを使います。
そして、移動先に応じて以下の操作を行います。
1.ドライブを変更して移動する方法
「cd」コマンドの後に「(空白)」と「/d」オプションをつけます。
続けて「(空白)」+「ドライブ名:(\ディレクトリ名)」と入力することで、
ドライブを変更した上で、指定したディレクトリーに切り替えることができます。
例えば、私の環境では、以下のように入力します。
実行するには「Enter」キーを押します。
これで、Dドライブの「Java」フォルダ内の「work」フォルダに移動できました。
2.同じドライブ内で移動する方法
コマンドプロントの「>」の左側にあるのは、現在の作業ディレクトリーを示します。
そのディレクトリーの、上位のフォルダに移動する場合は、
「cd」コマンドに空白を入れて「..」(ドット2つ)入力します。
例えば、以下のように入力し、実行すると、
「work」フォルダの上位フォルダである「Java」フォルダに移動できました。
また現在のディレクトリー内にある下位フォルダに移動する場合は、
「cd」コマンド+(空白)+(フォルダ名)を入力します。
例えば、以下のように入力し、実行すると、
「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」と入力し、
実行します。
※「""」で囲ったのは、パスの中で空白(~\Program Files\~)があるためです。
パスに空白がなければ、「""」で囲まなくても大丈夫です。
さあ、ちゃんとプログラムがコンパイルされるでしょうか!?
・・・
あれっ!・・・うまくコンパイルできません!
コンパイル失敗です・・・。
でもこのシリーズは「七転び八起き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」を上書き保存し、
再度コマンドプロントのウィンドウをアクティブにします。
そして、先ほどのコマンドを実行します。
もう一度同じコマンドを実行する場合には、
キーボードの「↑」キーを押せば、先ほど入力したコマンドが再度表示されます。
では、再度コンパイル実行してみましょう。
うまくコンパイルできるでしょうか・・・
しばらくすると、このように表示されました。
・・・成功?
のようですが、どうすればコンパイルできたと確認できるでしょうか。
そういえば以前、Javaを実行するためのソフト(JRE)
で考えましたが、
Javaは機械語に直接コンパイルするのではなく、
「中間コード」にコンパイルするということでした。
ということは、「Test01.java」の中間コードが作成されているはずです。
それでは、「Test01.java」のあるフォルダを見てみましょう。
すると、「Test01.class」という見慣れないファイルが出来ています!
このクラスファイルが「中間言語」です。
これをJavaVMを使って実行すると、ついにプログラムが、
パソコンなどで実際に動くことができます。
いやー、少しつまづきましたが、何とかコンパイルすることができました。
とりあえず、コンパイル成功としましょう!
では、ここで、今日のポイントを整理してみたいと思います。
・コマンドプロンプトで、ディレクトリーを移動する場合、「cd」コマンドを使う。
・コンパイルするには、JDKをインストールしたフォルダの中の
「bin」フォルダ中にある「javac.exe」を使う。
・コンパイルを実行して、エラーが出た場合、エラーメッセージを読むことで、
原因を考えることが出来る。
・コンパイルが成功すると、中間言語である「クラスファイル」が作成される。
次回
は、コンパイルしてできたクラスファイルを、
JavaVMを使ってパソコン上で実行してみたいと思います。