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

java [option ...] class-name

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

-classpath classpath
-cp classpath

クラスパス(.classファイルを探すディレクトリ、JARファイル及びZIPファイルのパス)を指定する。

-Dproperty=value

システムプロパティの値を設定する。

-ea

アサーションを有効にする。-eaオプションを指定しないしとアサーションは有効にならない。

-help

ヘルプメッセージを表示する。

-showversion

製品バージョンを表示してからプログラムを実行する。

-version

製品バージョンを表示して(プログラムを実行せずに)終了する。

-XX:MaxPermSize=size

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

Javaプログラムの実行方法

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

$ java HelloWorld
Hello world

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

$ java com.fc2web.itref.HelloWorld
Hello world

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

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

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

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

java -Djava.compiler=NONE com.fc2web.itref.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.fc2web.itref.HelloWorld

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

スポンサーリンク