【初心者でもすぐわかる】javaコマンドの使い方まとめ

Javaコマンド
  • このエントリーをはてなブックマークに追加
  • Pocket

Javaを実行するときに使われるJavaコマンド。

オプションや他にも似たようなコマンドがあったりと、意外と知られていないことも多いようだ。

このページではJavaコマンドについてまとめている。ご参考なればと思う。

Javaコマンドの使い方

Javaコマンドとは、Javaアプリケーションを起動するためのコマンドだ。

実際に、アプリケーションを起動するためには、クラスファイルの名前などいくつかの情報をオプションとして指定する必要である。しかし、何も情報をつけないで、WindowsのDOS窓からjavaと入力してみよう。コマンドの後に、「使用方法」が表示される。

java-01-no-parameter

これは、既にJavaがインストールされ、java.exeのパスが設定されているからだ。Javaコマンドは何もオプションに指定しなければ、使用方法が表示されるようになっている。

では、この状態からJavaアプリケーションを起動するためのいくつかのJavaコマンドの使い方を見ていこう。

コマンドの書き方の基本は簡単だ。

java [ オプション] class [ 引数 ]

java [ オプション] -jar ファイル名.jar [ 引数 ])

Javaコマンドの書き方の詳細を確認していこう。

java コマンド

実際に「Hellow World!」を表示するクラスファイルHelloWorldを起動してみる。javaコマンドを実行して、クラスファイルを起動すると文字がコンソールに表示される。

java-02-current-directory

これから、HelloWorld.javaから作られたクラスファイルを例に説明を進めていく。コードは次のようになっている。Javaコマンドは、このmain()メソッドを最初に見つけて、アプリケーションを起動する。

javaw コマンド

javawコマンドを使っても、Javaのアプリケーションを起動できる。書き方はjavaと同じだ。

javaw [ オプション] class [ 引数 ]

javaw [ オプション] -jar ファイル名.jar [ 引数 ])

javawコマンドは、javaコマンドとして認識される。違いは、コンソールとのつながりがないという点だ。コマンドを実行しても、コンソールとのつながりがないので、コンソールに出力される「HelloWorld」は表示されない。

java-03-1-hellooworld

コマンド・プロンプト・ウィンドウに何も表示させたくない時にこのコマンドを使う。しかし、起動のためのエラーはダイアログボックスに表示される。

オプションなし

もし、classpathやcpオプションを使用しなかったり、CLASSPATHを設定しなかったりすると、ユーザのクラスパスはカレントディレクトリになる。カレントディレクトリとは、コマンドを実行しているディレクトリのことだ。

HellowWorldは実行可能なクラスファイルで、実行すると「Hello World!」を表示する。クラスパスを何も指定しないで、javaコマンドでHelloWorldを実行してみよう。

コマンド

java HelloWorld

クラスファイル

C:\commad\HelloWorld.class

java-02-current-directory

しかし、クラスファイルがカレントディレクトリ(C:\command)にないとどうなるだろうか。

コマンド

java HelloWorld

クラスファイル

C:\commad\classes\HelloWorld.class

java-03-2-current-directory-error

クラスファイルが、カレントディレクトリにないのでエラーが起きる。このエラーを解決するのが次のオプションだ。

オプション -classpath または -cp

クラスファイルを起動する

このオプションで指定できるのは、クラスファイルを検索するためのディレクトリ、Jarファイルのリスト、Zipアーカイブのリストである。つまり、このオプションを使うと、クラスファイルの場所を指定することができる。

早速、前のセクションでエラーが起きたコマンドに-classpathオプションでクラスファイルのディレクトリを指定してどうなるか確かめよう。

コマンド

java -classpath C:\command\classes HelloWorld

クラスファイル

C:\commad\classes\HelloWorld.class

java-04-classes-directory

エラーは起きないで、HellowWorld!が表示された。成功だ。

先のコマンドでは、オプションclasspathに絶対パスC:\command\classesでディレクトを指定したが、相対パスを使うこともできる。もし、カレントディレクトリがC:\commandであれば、クラスファイルのディレクトリの相対パスは、「.\classes」である。

確かめてみよう。

コマンド

java -classpath .\classes HelloWorld

クラスファイル

C:\commad\classes\HelloWorld.class

java-05-classes-directory

相対パスをオプションに指定しても、結果は同じになる。

jarファイルを起動する

jarファイルは、クラスファイルを一つのファイルにまとめたものだ。このjarファイルの中にmainメソッドを持つクラスファイルと起動するための情報が書かれたマニュフェストファイルがあればクラスファイルを起動できる。

この説明の中のHelloWorld.classのソースコードは以下の通りである。

また、このクラスを起動するためのマニュフェストファイルは次の通りである。

Main-Class: greetings.HelloWorld

これらのファイルから作成されたjarファイルを起動する。

コマンド

java -jar greetings.jar

jarファイル

C:\commad\greetings.jar

java-07-hellooworld

jarファイルが、カレントディレクトリではなく、別のディレクトリにある場合に絶対パスで指定して起動する。

コマンド

java -jar C:\command\lib\greetings.jar

jarファイル

C:\commad\lib\greetings.jar

java-08-greetings

クラスファイルと同じように相対パスでも指定できる。

コマンド

java -jar .\lib\greetings.jar

jarファイル

C:\commad\lib\greetings.jar

java-09-greetings

引数を指定して起動する

引数を指定するには、コマンドの最後にスペースで区切って引数となる値を記述する。例えば、「HelloWorld! from」は固定で、その後に引数で「Java」とか「Tokyo」を追加する場合、コードは次のようになる。

では、引数を「Java」で実行してみよう。

コマンド

java HelloWorldFrom Java

クラスファイル

C:\commad\HelloWorldFrom.class

java-10-parameter

「Hello World! from」の後に「Java」が表示される。引数を「Tokyo」に変えるとどうなるだろう。

コマンド

java HelloWorldFrom Tokyocl

クラスファイル

C:\commad\HelloWorldFrom.class

java-11-parameter

「Hello World! from」の後が、今度は「Tokyo」になっているのが分かるだろう。

オプション -versionと-showversion

Javaのバージョン情報が必要な時は、このオプションを使うことができる。単に、バージョンを確認したいのであれば、オプション「-version」を使う。しかし、バージョン情報を表示した後、アプリケーションも実行する場合は、オプション「-showversion」を設定する。

確認してみよう。

まず、オプション「-version」を付けて、HelloWorldを実行してみる。

java-12-version

確かにバージョンは表示される。しかし、「HelloWorld!」の表示はない。アプリケーションは起動されないのだ。

今度は、オプション「-showversion」を付けて起動してみよう。

java-13-version

今度は、バージョンは表示の後に「HelloWorld!」の表示がある。アプリケーションが起動されていることが分かる。

オプション -help

Javaコマンドのオプションを調べるには、-helpオプションを使う。このオプションを指定してコマンドを実行する書き方とオプションの一覧が表示される。

java-14-help

オプション -D システム・プロパティ

システム・プロパティを設定するためには、-Dオプションを使う。システム・プロパティとは、システムが持つ様々な属性のことだ。例えば、表示するフォントを変えたい時など、システム・プロパティを使えばコードの書き換えなしで、システム・プロパティを設定できる。

実際にサンプルで確かめてみよう。このサンプルで、システム・プロパティを設定するために使用するコードを以下に示す。

Javaコマンドを-Dオプションで実行すると、システム・プロパティsystem.languageにJapaneseが設定されている。

java-15-system-property

このように、必要なシステム・プロパティを決めてJavaコマンドでアプリケーションを起動する際に設定するようにすれば、変更しやすいアプリケーションになる。

まとめ

このページではjavaコマンドについてまとめてお伝えした。基本的にはjavaを実行するときにしか使わないし、Eclipseなどを使っているとより使わないが、Javaを使っていく者として一通り押さえておこう。

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できます。

IT講師に興味はありませんか?

・「今までIT講師をやってきたが、更に多くの講義を行いたい」

・「エンジニアとしてやってきたが講師業に魅力を感じている」

・「講師として活躍するためにベースとなる知識を知りたい」

・「様々な分野や言語の講師にチャレンジしてみたい」


という方はぜひIT講師募集のページをご覧ください。


リスキルテクノロジーでは「受講している方々にITを好きになってもらう」ことを目標に、同じ目標に向かって歩んで行ける講師の方を常に探しています。


システム開発やインフラ構築などのエンジニアリング経験を活かし、新入社員などの未経験者や経験の浅い初学者の方々に対してITトレーニングを行っていただくことになります。


テキストやカリキュラムは事前に用意されており、それらを元に講義を進めていくため、IT講師をはじめて実施する方でも安心してトレーニングを実施できます。


IT講師募集のページを見る

SNSでもご購読できます。

コメント

コメントを残す

*

未経験からの育成制度も充実
IT講師に興味はありませんか?

リスキルテクノロジーでIT講師の積極募集を開始! 経験・未経験問わずご応募可能。育成制度で講師スキル向上も目指せます

IT講師に応募する