Java > javaコマンドの使い方
更新日
2013-11-12
広告
javaコマンドの使い方を紹介します。
クラスの実行
mainメソッドを持つJavaのクラス名を指定すると、mainメソッドを呼び出すことができます。$ java クラス名以下のサンプル Sample.java を実行してみます(あえてlog4jを利用しています)。
package sweng.tips; import org.apache.log4j.Logger; public class Sample { private static final Logger logger = Logger.getLogger(Sample.class); public static void main(String[] args) { System.out.println("main"); } }ディレクトリの構造は以下のようになっています。
root/ lib/log4j-1.2.15.jar sweng/tips/Sample.javaディレクトリroot から、Sample.javaを実行する場合、以下のようになります。
$ java -cp .:lib/log4j-1.2.15.jar sweng.tips.Sample mainパッケージ名とクラス名を指定していることに注意してください。
クラスパスの指定
上の例では、Sampleクラスを実行する際に、クラスパスを指定しています。$ java -cp .:lib/log4j-1.2.15.jar sweng.tips.Sample
クラスパスは、デフォルトでカレントディレクトリ(この場合はrootディレクトリ)が設定されます。今回はlog4jを利用しているので、lib/log4j-1.2.15.jarをクラスパスに設定する必要があります。
複数のクラスパスを指定する場合(ライブラリを複数利用する場合など)は、コロン(:)区切りで指定してください。上記の例では、カレントディレクトリ(.)と、log4j-1.2.15.jarの2つを、クラスパスに設定しています。
確保するヒープメモリサイズの設定
メモリをたくさん使用するアプリケーションを実行する場合は、メモリの使用量を設定する必要があります。Javaアプリの実行中にOutOfMemoryエラーが発生した場合は、以下のように、メモリの使用量を設定してみるとよいでしょう。$ java -Xmx1024m -Xms512m -cp .:lib/log4j-1.2.15.jar sweng.tips.Sample
- -Xmx : Java VMが利用するメモリの最大値
- -Xms : Java VMが起動時に確保するメモリ値
Permanentメモリサイズの設定
Permanentメモリサイズを設定するには-XX:MaxPermSizeを指定します。 Grailsのように、巨大なミドルウェアを使う場合は、たくさんのクラスをロードすることになるので、Permanentメモリの最大サイズを増やすことを検討してみてもよいでしょう。$ java -XX:MaxPermSize=256mjstatコマンドを使えば、Permanentメモリの最大サイズを確認できます。 PGCMXの値を調べればよいです。
$ jstat -gccapacity java_process_PID
システムプロパティの設定
「-D」を使うと、システムプロパティを指定して、Javaアプリを実行できます。$ java -Dfile.encoding=UTF-8 -Xmx1024m -Xms512m -cp .:lib/log4j-1.2.15.jar sweng.tips.Sample上の例では、プロパティ「file.encoding」に、「UTF-8」を設定して、Javaアプリを実行しています。
UseSplitVerifier
Java 5から導入された新しいtype checker(型をチェックするプログラム)を利用するオプション。Java 7ではデフォルトで有効になっている。java 7で、java.lang.VerifyErrorが発生するときは、このオプションを無効にしてみると、エラー解決できる場合がある(私の場合、java7u5で確認済み)。
無効にするには、マイナス(-)に続けて指定すればよい。
$ java -XX:-UseSplitVerifier ...
広告
お問い合わせは sweng.tips@gmail.com まで。