javaコマンド

Javaプログラムを実行するには、javaコマンドを使用します。

java [option ...] class-name

javaコマンドを実行するためには、JRE (Java Runtime Environment) または JDK (Java Development Kit) をインストールする必要がある。

さらに、javaコマンドがあるディレクトリ(フォルダ)のパスを環境変数 PATH に設定する必要がある。

引数

javaコマンドの引数には、実行するクラスの名前を指定する。クラスファイルの拡張子(.class)は省略する。

$ java Example

パッケージに含まれるクラスを実行するには、パッケージも含めて指定する。

$ java com.segakuin.example.HelloWorld

javaコマンドの引数にクラスファイルではなくJARファイルを指定して実行することもできる。ただし、JARファイルを実行するには、javaコマンドに -jar オプションを指定する。

$ java -jar example.jar

オプション一覧

optionにはJavaの実行オプションを指定する。Javaの実行オプションを次に示す。

-classpath classpath
-cp classpath
クラスパス(.classファイルを探すディレクトリ、JARファイル及びZIPファイルのパス)を指定する。
$ java -cp /home/tsuka/lib/ Example

クラスパスには、複数のパスをセミコロンで区切って指定できる。

$ java -cp /home/tsuka/lib;/home/tsuka/example.jar Example

-classpath または -cp オプションで指定したクラスパスは、環境変数 CLASSPATH の設定よりも優先される。

-Dproperty=value
システムプロパティの値を設定する。
-ea
アサーションを有効にする。-eaオプションを指定しないしとアサーションは有効にならない。
$ java -ea Example.class
-?
-h
-help
ヘルプメッセージを標準エラー出力に出力する。
$ java --h
--help
ヘルプメッセージを標準出力に出力する。
$ java --help
-showversion
--show-version
JRE (Java Runtime Environment) または JDK (Java Development Kit) のバージョンを表示してからプログラムを実行する。
$ java -version Example.class
-version
--version
JRE (Java Runtime Environment) または JDK (Java Development Kit) のバージョンを表示して、プログラムを実行せずに終了する。
$ java -version
-XX:MaxPermSize=size

PermGen領域の最大サイズを変更する。

Javaプログラムの実行方法

ソースファイル HelloWorld.java をコンパイルして生成されたクラスファイル HelloWorld.class を実行する例を次に示します。

$ java HelloWorld
Hello world

パッケージ化したクラスファイル ./com/segakuin/example/HelloWorld.class を実行する例を次に示します。

$ java com.segakuin.example.HelloWorld
Hello world

Javaを実行した際、「 Exception in thread "main" java.lang.NoClassDefFoundError: 」と表示された場合、CLASSPATHの設定かクラス名の指定方法に誤りがあります。以下の点を調べてみてください。

システムプロパティの設定

システムプロパティを設定するには、 java コマンドに -D オプションを指定する。

JavaプログラムをJIT (Just in Time)コンパイラなしで実行する例を次に示す。

java -Djava.compiler=NONE com.segakuin.example.HelloWorld

PermGen領域の最大サイズを変更

永続世代領域(PermGen space: Parmanent generation space)とは、Javaクラスとそのメタ情報が格納されるメモリ領域である。クラスはロードされる時点でPermGen spaceに保存される。たくさんのクラスがロードされる場合、PermGen spaceの最大サイズを超えると、「 java.lang.OutOfMemoryError: PermGen space 」が発生する。

Javaプログラムを実行した際、「 java.lang.OutOfMemoryError: PermGen space 」と表示された場合、PermGen spaceが不足している。

JVMの -XX:MaxPermSize オプションでPermGen spaceの最大サイズを指定することができる。最大サイズの値にはm(メガ)などの単位を指定することもできる。

java -XX:MaxPermSize=128m com.segakuin.example.HelloWorld

なお、Java 8からPermGenが廃止され、Metaspaceに代わった。