== 処理系の使い方 == Cのプログラミングを学習済みとして説明しています。 ---- === ソースプログラム === . ソースプログラムはエディタを使って作成します。 . Javaプログラムはクラスを定義するものです。 . クラス名の'''1文字目'''は大文字にします。 . ファイル名はクラス名の後に '''.java''' をつけたものでなければならない。 ==== Javaソースプログラムの構造 ==== {{{#!java public class クラス名 { ... ... } }}} ---- === コンパイル === . コンパイルするには次のコマンドを使います。 {{{ > javac ソースファイル名 }}} . ソースファイル名はクラス名の後に '''.java''' をつけたものですから次のように考えても同じです。 {{{ > javac クラス名.java }}} . コンパイルによりJava仮想マシンの機械語であるバイトコードが生成されます。 . ソースプログラム Abc.java がコンパイルされるとクラスファイル Abc.class が作られます。(Abcの部分はクラス名) . {{attachment:java11.png}} ---- === 実行 === . 実行は仮想機械(JVM)上で行います。 . コマンド {{{ > java クラス名 }}} . を入力するとJVM上で、指定クラスのmainメソッドが実行されます。 . {{attachment:java12.png}} . Lesson1.java をコンパイルしてできた Lesson1.class (内のmain)を実行するには {{{ > java Lesson1 }}} . と入力します。 ---- === mainメソッドを含むプログラム === . javaコマンドを用いて直接実行できるのは、mainメソッドを含むクラスに限ります。 . mainメソッドを含まないクラスを定義することもできます。 . mainメソッドを含むソースプログラムの構造は次のようになります。 {{{#!java public class クラス名 { public static void main(String[] args) { ... ... } } }}} ==== 例 ==== . Hello, World ! と表示するプログラム。 {{{#!java public class Lesson1 { public static void main(String[] args) { System.out.printf("Hello, World !\n"); } } }}} . Lesson1 というクラスを定義しています。 . クラス名が Lesson1 のときファイル名は Lesson1.java になります。 ---- === 別の環境(OS)で利用する === '''実行''' 実行したいOS上にJVMが存在すれば、クラスファイルをコピーするだけで、修正なく同様に実行できます。 . コンパイルしたのと同じOS上で実行できるのはあたりまえ。 . Windows上でコンパイルしてLinux上で実行することも可能です。 . Linux上でコンパイルしてWindows上で実行することも可能です。 . MacOSや他の多くのプラットフォーム上にも用意されています。 '''コンパイル''' 別のOS上で作成されたソースプログラムをコンパイルするときは文字コードの扱いに注意が必要です。 . OSの標準とは異なる文字コードで記述されたプログラムをコンパイルするときは -encoding オプションで文字コードを指定します。 . SJISで記述したプログラムを別のOS上でコンパイルするときには {{{ > javac -encoding SJIS filename.java }}} . のようにします。 * Windowsでの標準の文字コードはSJISです。 * 演習用サーバ(Linux)での標準の文字コードはUTF-8です。 ---- === コマンドオプション === javac java どちらのコマンドにもオプションを指定することができます。 . 使えるオプションは {{{ > javac -help }}} {{{ > java -help }}} . で調べられます。 . バージョンを調べるには {{{ > javac -version > java -version }}} . とします。 ---- === Javaのバージョン === 書籍やネット上の情報などでは Javaのバージョンと処理系のバージョン表記に違いがあるので注意してください。 ||Javaのバージョン||処理系のバージョン|| ||<|2>Java||Java 1.02|| ||Java 1.1|| ||<|3>Java2||Java 1.2|| ||Java 1.3|| ||Java 1.4|| ||<|2>Java5||Java 1.5|| ||Java 1.6|| ---- === 実習室での注意 === * この授業用のフォルダ(ディレクトリ)を作成し、そのフォルダ(ディレクトリ)内にここで使う.javaファイルや.classファイルなどを置きましょう。 * Windowsを使う場合、フォルダ名は直接入力で入力できる文字で付けること。 * 上の使い方の説明で>の記号はプロンプトを表しています。 . Windowsではドライブ名、フォルダ名に続いて > が表示されます。 . Linuxではディレクトリ名に続いて $ が表示されます。 コンパイルと実行の例 . Linux(演習用サーバ)の場合 {{{ [name@linux ~]$ cd proa [name@linux proa]$ javac Sample.java [name@linux proa]$ java Sample }}} . Windowsの場合 {{{ z:\> cd proa z:\proa> javac Sample.java z:\proa> java Sample }}} '''できるだけ演習用サーバを利用してください。'''