バナー画像

近年はEclipseなどの統合開発環境を利用することが多く、コマンド操作に慣れていない方も多いかと思います。

一方で、javaコマンドはJavaアプリケーションを起動するための基本であり、最低限のコマンド操作を理解することはJavaプログラムを理解する上でも役に立ちます。

本記事では、javaコマンドの基本的な操作方法とオプションの使い方を初心者向けにご紹介していきます。

javaコマンドとは


javaコマンドは、Javaプログラムを実行する際に利用するコマンドです。

使い方

Javaのクラスファイルを実行する際の記述は下記です。

java [オプション] クラス名 [引数]

実行内容

javaコマンドを実行すると、指定したクラスがロードされ、クラスに定義されたmainメソッドを呼び出します。

[引数]に指定した値は、mainメソッドの引数args[]で受け取ることが可能です。

public static void main(String args[])
ポテパンダの一言メモ

mainメソッドは「public」「static」「void」でString型の配列を引数として受け取る記述にする必要があります。

javacコマンドとjavawコマンド


javaコマンドと似たコマンドに「javac」コマンドと「javaw」コマンドが利用出来ます。

それぞれ少しずつ役割が異なるので確認しておきましょう。

javacコマンド

javacコマンドは、Javaのソースコードをコンパイルするためのコマンドです。

Javaのソースコードが記述された拡張子「.java」ファイルを、実行可能な拡張子「.class」ファイルに変換します。

Java言語のコンパイラ(Compiler)なので「javac」コマンドという名称になっています。

javawコマンド

javawコマンドは、javaコマンドと同じく、Javaアプリケーション実行用のコマンドです。

javaコマンドとの違いは、javawコマンドは元々ウィンドウアプリケーション用のコマンドであるため、コンソールとの繋がりがなくコンソールへの入出力が出来ません。

そのため、コンソールに何も出力したくない場合には、javawコマンドが利用されます。

javaコマンドのオプション


javaコマンドにはたくさんのオプションが用意されていますので、利用される頻度の高いオプションを中心にご紹介していきます。

標準オプション

標準オプションは、JVM全ての実装でサポートされるオプションです。

標準オプション
  • -help
  • -version
  • -client
  • -server
  • -classpath(-cp)
  • -jar

helpオプション

helpオプションを実行することで、javaコマンドの利用方法や利用可能なオプションが一覧表示されます。

困ったときはhelpオプションを実行してみましょう。

$java -help
使用方法: java [options]  [args...]
           (クラスを実行する場合)
省略・・・
 オプションは次のとおりです:

    -cp <ディレクトリおよびzip/jarファイルのクラス検索パス>
    -classpath <ディレクトリおよびzip/jarファイルのクラス検索パス>
省略・・・

versionオプション

versionオプションを実行すると、JREのバージョン情報が出力されます。

$java -version
java version "13.0.1" 2019-10-15
Java(TM) SE Runtime Environment (build 13.0.1+9)
Java HotSpot(TM) 64-Bit Server VM (build 13.0.1+9, mixed mode, sharing)

clientオプション

clientオプションは、Java HotSpot Client VMを利用するように指定するオプションです。

従来のデフォルト設定でしたが、Java8以降はLinux・Mac・Windowsの64bit版では-serverがデフォルト指定になったようです。

java -client

serverオプション

serverオプションは、Java HotSpot Server VMを利用するように指定するオプションです。

java -server

上述したように64bit版のOSでは大抵-serverがデフォルト指定となっているため、javaコマンド実行時、特に指定しない場合には-serverオプションが適用されている状態です。

classpathオプション

classpathオプションでは、Javaプログラム実行に必要なクラスファイルのディレクトリやjarファイル・zipファイルのパスを指定します。

classpathは複数指定することが可能で、Windowsの場合は「;(セミコロン)」Unix系の場合「:(コロン)」で区切ります。

java -classpath ファイルパス クラス名

最後のクラス名は、実行したいクラスファイルの名前です。

実行したいクラスファイルから参照するファイルパスをclasspathオプションで指定します。

jarオプション

jarオプションは、クラスファイルではなくjarファイルを実行する際に利用します。

java -jar jarファイル名

jarファイルからJavaプログラムを実行する際、マニフェストファイルが必要となります。

マニフェストファイルにはMain-Classパラメータの記述が必要で、起動するクラスを指定します。

非標準オプション

非標準オプションは、JVM全ての実装でサポートされるオプションではなく、「-x」から始まるオプションを指します。

非標準オプション
  • -X
  • -Xms
  • -Xmx

Xオプション

Xオプションは、-helpの非標準オプション版です。

非標準オプションとして利用可能なオプション一覧が表示されます。

$java -X

    -Xbatch           バックグラウンド・コンパイルを無効にします
    -Xbootclasspath/a:
                      ブートストラップ・クラス・パスの最後に追加します
    -Xcheck:jni       JNI関数に対する追加のチェックを実行します
省略・・・

Xmsオプション

Xmsオプションでは、Javaの初期ヒープ・サイズを設定します。

サイズを設定する際、単位まで指定することが重要です。

java -Xms:64m クラス名

サンプルの場合は、初期ヒープ・サイズとして64メガバイトを指定しています。

Xmxオプション

Xmxオプションでは、Javaの最大ヒープ・サイズを設定します。

ヒープに設定出来る最大値はOS環境によって異なるようです。

java -Xmx:1g クラス名

サンプルの場合は、最大ヒープ・サイズとして1ギガバイトを指定しています。

ポテパンダの一言メモ

ちなみにヒープ・サイズはガベージコレクションが実施された際に解放されるメモリ領域です。

さいごに: javaコマンドのオプションは都度調べて活用しよう


本記事では、javaコマンドの基本とオプションの使い方についてご紹介してきました。

javaコマンドのオプションはたくさんあるので全てを覚えようとする必要はありません。

helpオプションやインターネット上の情報を活用して、都度必要な情報だけを利用していく方法がおすすめです。

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。