Java でプログラムをコンパイルして実行する時は、主にいくつかのコマンドを使います。代表的なものはjavac(コンパイラ)、java(実行コマンド)、その他の補助コマンドです。以下は最もよく使う Java のコンパイル・実行コマンドです。
1. Java ソースコードを書く#
まず Java ソースファイルが必要です。たとえばHelloWorld.javaというファイルを作り、内容を以下のようにします。
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}2. Java プログラムをコンパイルする#
javacコマンドで Java ソースファイルをコンパイルします。このコマンドは.javaファイルを Java バイトコードへコンパイルし、対応する.classファイルを生成します。
javac HelloWorld.java実行後、HelloWorld.classファイルが生成されます。これが Java 仮想マシン(JVM)で実行できるバイトコードファイルです。
複数ファイルをコンパイルする:#
複数の Java ファイルがある場合、一緒にコンパイルできます。
javac File1.java File2.javaまたは、現在ディレクトリ下のすべての Java ファイルをコンパイルします。
javac *.java3. Java プログラムを実行する#
javaコマンドで、コンパイル済みの Java クラスファイルを実行します。
java HelloWorld注意:Java プログラムを実行する時、.class拡張子は付けません。クラス名だけを指定します。
4. 出力ディレクトリを指定してコンパイルする#
-dオプションで、コンパイル後の.classファイルの出力先ディレクトリを指定できます。
javac -d bin HelloWorld.javaこれにより、コンパイル後の.classファイルはbinディレクトリへ出力されます。
5. クラスパス(CLASSPATH)を設定する#
Java プログラムが他のライブラリやclassファイルに依存している場合、-cp(または-classpath)オプションでクラスパスを指定する必要があります。例:
java -cp .:lib/somelibrary.jar HelloWorldこの例では、現在ディレクトリ(.)とlib/somelibrary.jarがクラスパスに追加されています(Linux はコロン:で区切り、Windows はセミコロン;で区切る点に注意)。
6. JAR ファイルへパッケージ化する#
Java プログラムを JAR ファイル(Java Archive)としてまとめ、JVM から直接実行できるようにできます。手順は以下の通りです。
JAR ファイルを作成する:#
jar cvf HelloWorld.jar HelloWorld.class実行可能 JAR ファイルを作成する:#
Java プログラムにmainメソッドがある場合、実行可能な JAR ファイルを作れます。
- まず
manifest.txtファイルを作成し、エントリポイントを指定します。
Main-Class: HelloWorld- 次に、以下のコマンドで JAR ファイルを作成します。
jar cfm HelloWorld.jar manifest.txt HelloWorld.class- JAR ファイルを実行します。
java -jar HelloWorld.jarJAR ファイルへパッケージ化する別の方法#
jarコマンドを使い、生成済みのバイトコードファイルをパッケージ化します。
jar -cvf hello.jar HelloWorld.classここでcは新しいjarパッケージを作成すること、vは作成過程の情報を出力すること、fは新しく生成するjarに名前を付けることを表します。
最後に、以下のコマンドでjarパッケージを実行します。
java -jar hello.jarただし、このままでは期待した結果は出ず、hello.jarにメインマニフェスト属性がないというエラーが発生します。これは、まだMENIFEST.MFファイルにMain-Class属性を追加していないためです。 
圧縮ソフトで先ほど作成したhello.jarを開くと、HelloWorld.classファイル以外にMETA-INFフォルダが追加され、その中にMENIFEST.MFファイルがあります。このファイルをエディタで開き、以下のコードを追加します。(追加後、ファイル末尾に空行を一行残すことを忘れない)
Main-Class: HelloWorld追加後、再びjava -jar hello.jarを実行すれば、コンソールにHello World!を正常に出力できます。
7. よく使う JDK コマンドまとめ#
javac:Java コンパイラ。Java ソースファイル(.java)をバイトコードファイル(.class)へコンパイルする。javac HelloWorld.javajava:Java インタプリタ。コンパイル済みバイトコード(.class)ファイルを実行する。java HelloWorldjar:JAR ファイル(Java アーカイブファイル)を作成・管理するためのコマンド。複数の.classファイルやその他リソースをまとめられる。jar cvf HelloWorld.jar HelloWorld.classjavadoc:Java ソースコードの API ドキュメントを生成する。javadoc HelloWorld.javajavap:.classファイルを逆コンパイルし、バイトコードやメソッドシグネチャを確認する。javap HelloWorld
8. デバッグ(jdb)#
Java プログラムをデバッグする必要がある場合、Java Development Kit にはjdbコマンド(Java Debugger)も用意されています。ブレークポイント設定、変数確認などに使えます。
jdb HelloWorldまとめ#
Java プログラムのコンパイルと実行では、主に二つの核心コマンドを使います。javac(コンパイル)とjava(実行)です。これらのコマンドにより、Java コードを書き、コンパイルし、実行できます。さらに、jarコマンドで Java プログラムを JAR ファイルにパッケージ化でき、javapでバイトコードを逆コンパイルでき、jdbで Java プログラムをデバッグできます。これらのコマンドを組み合わせることで、Java 開発は非常に柔軟で強力になります。



