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

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

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

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

短期間でエンジニアになる方法

・「まったくの初心者だけどエンジニアになりたい!」

・「プログラマーとして転職をしたい!」

という方はリナックスアカデミーの資料を見てみてください。短期間で未経験からエンジニアになることができるスクールとして15年間選ばれ続けてきた理由やノウハウが載った資料です。

エンジニアの入り口に立つために必要な勉強技術の最新動向本当に使えるIT資格学習に役立つ国からの奨励金などの情報が詰まっています。

無料で2,3日中にお手元にお届けします。


資料を見てみる

SNSでもご購読できます。

コメントを残す

*