Java 環境のセットアップ

Revised: June/17th/2007; Since: Dec./21st/2001

JavaSun Microsystems が開発し、メンテナンスしています。開発/実行用ソフトウェアも Sun Microsystems が無料で公開しています。

アプリケーションの開発用ソフトウェアのことを開発環境と呼びます。Sun Microsystems では、開発/実行環境のことをプラットフォームと呼称しています。一般に、環境と呼ぶ場合、コンパイラやライブラリのほか、OSやテキストエディタなどの周辺ソフトウェアのことも指しますが、ここでは、Java 開発用のソフトウェアのことを開発環境と呼びます。

ここでは、コマンドプロンプトで開発するための JDK (SDK) のダウンロードとインストールを紹介します。これらをインストールした後、グラフィカルに開発するための統合開発環境 (IDE) をインストールするのも良いでしょう。IDE には、オープンソースの Eclipse, Borland の JBuilder、Sun Microsystems の NetBeans などがあります。2007 年現在、最も広くいきわたっているのが Eclipse です。 IBM の RAD (旧称 WSAD)も Eclipse ベースです。そもそも Eclipse は IBM がオープンソースに寄贈したものだからです。

Java Platform の選択

Sun Microsystems が公開している Java2 の種類(プラットフォーム)には次の三つの種類があります。

上記の三つのプラットフォームは、2005年6月以前は、次のように呼称されていました

三つのプラットフォーム間の違いについては別項で説明しますが、最も標準的なのは Standard Edition です。

バージョンリリース日コードネーム備考
JDK 1.0Feb, 1996最初の正式リリース
JDK 1.1Feb 20, 1997最初の正式リリースアップ
JDK 1.1.4Sept 12, 1997Sparkler
J2SE 1.2Dec 4, 1998PlaygroundJava 2と改称。三つのプラットフォーム制導入。
J2SE 1.3.0May 8, 2000Kestrel
J2SE 1.4.0Feb 13, 2002Merlin
J2SE 5.0 (1.5.0)Sept 29, 2004Tiger1.5から5.0へバージョン規則変更。
Java SE 6 (1.6.0)Dec 11, 2006MustangJava 2からJavaへ呼称変更。6.0から6へバージョン規則変更。

必要なソフトウェア

Javaアプリケーションをを実行するために必要なソフトウェア(実行環境)をJRE (Java SE Runtime Environment)と呼びます。開発するためのソフトウェア(開発環境)はJDK (Java SE Development Kit)と呼ばれます。JDKはJREを含むので、開発者はJDKだけをインストールすればいいことになります。2007年6月現在の最新版はJDK 6u2です。

2007年6月現在、過去のバージョンの最新版は次の通りです:

Java関連のソフトウェアの名称は、1.1まではJDK (Java Development Kit)、1.2からはJ2SDK (J2SE Software Development Kit), 5.0 (1.5)からはJDK (J2SE Development Kit), 6でJDK (Java SE Development Kit)という変遷をたどっています。大筋では、JDKかSDKが開発環境で、実行環境であるJREを含むと理解してください。

環境の入手

ここでは、 Sun MicrosystemsのJDKの導入方法を紹介します。 Javaはソースコードをバイトコードと呼ばれるフォーマットにコンパイルしてから、それをJVM (Java Virtual Machine)と呼ばれるソフトウェア上で実行します。このJVMと、コアパッケージと呼ばれる標準クラスのライブラリを含めて、 Javaプラットフォームと呼んでいます。 Javaプラットフォームの最も標準的なものが Java Platform, Standard Edition になります。

複数のJDK/SDKを同じ筐体にインストールするときは、実行パスとクラスパスの混乱を招かないように注意してください。よく分からない場合は、前のバージョンのJDK/SDKをアンインストールして、必要なバージョンをインストールするようにお勧めします。

JDK の入手

以下では、 Java(TM) SE Development Kit 6 Update 2のWindows版のダウンロード方法を示します。別のOSや異なるバージョンをダウンロードする場合は、適宜読み替えてください。

  1. Java SE Downloads」の中から、「ダウンロード」をクリック
  2. Required: You must accept the license agreement to download the product.Review License Agreementを確認して、ラジオボックスReview License Agreementにチェック
  3. Windows Platform - Java(TM) SE Development Kit 6 Update 2Windows Offline Installation, Multi-languageをクリックしてダウンロードを開始

※特定の目的がある場合は、該当のバージョンを過去の SDK/JDKの中から選んでください。

Java Document の入手

Java のライブラリの仕様書は API ドキュメントとして公開されています。 SDK と同時に、 API 仕様書も入手しておきます。

  1. Java SE Downloads」の中から、「Java SE 6 ドキュメント」をクリック
  2. Accept License Agreementにチェック
  3. Java(TM) SE Development Kit Documentation 6, Japaneseをクリックしてダウンロードを開始

環境の導入

OSごとの導入方法を Sun Microsystemsが公開しています(インストール手順)。サポート対象のシステム構成については、インストール前に確認してください。

開発環境の導入

先ほどダウンロードした導入 *.exe ファイルをダブルクリックします。

  1. Windows のセキュリティの警告でボタン「実行」を押下(この画面は、存在する場合としない場合がある)
  2. 起動画面で使用許諾確認画面への遷移を待機
  3. 「使用許諾契約」に目を通して承諾できれば、ボタン「次へ(N)」を押下
  4. 「カスタムセットアップ」で必要な機能とインストール先を選択してボタン「次へ(N)」押下
    デフォルトでは全て選択される。JDK6u2の場合のインストール先は"C:\Program Files\Java\jdk1.6.0_02"。
  5. ファイルの展開開始
  6. 再び「カスタムセットアップ」の選択。ここでも、先ほどと同じように、デフォルトのままとして、「次へ(N)」ボタン押下
  7. 「ブラウザの登録」でアプレット実行時にこの環境を使うブラウザにチェックを入れて「次へ(N)」ボタンを押下
  8. インストール開始。ファイルがコピーされ、進捗中はプログレスバーが延びていく
  9. 「インストールが完了しました」で「完了」ボタンを押下

以上で開発環境の導入が完了しました。

コマンドラインを開いて、コマンド "java -version" を入力して Enter ボタンを押下してください。

C:\>java -version -long
java version "1.6.0_02"
Java(TM) SE Runtime Environment (build 1.6.0_02-b06)
Java HotSpot(TM) Client VM (build 1.6.0_02-b06, mixed mode, sharing)

C:\>

正しくインストールされていることが確認できると思います。

Java Documents の導入

先ほどダウンのロードした文書の ZIP ファイルを解凍して適当なディレクトリに配置してください。 index.html ファイルへのショートカットをデスクトップに置いてください。ショートカットの名前は、「Java SE 6 日本語文書」など分かりやすいものにしておくと便利です。プログラミング中は、常にこの文書を参照することになります。

環境変数の指定

開発環境を使えるようにするために、 OS の環境変数 PATH と CLASSPATHをセットアップします。

PATH 変数には、コマンドラインから実行プログラムを探索するパスを指定します。JDK 6u2 の場合は、"C:\Program Files\Java\jdk1.6.0_02\bin" になります。Windows では、セミコロン区切りで、複数のパスを指定します。先に指定したものが優先されます。PATH 変数に入ってない場所にあるプログラムを実行する場合は、実行プログラムをフルパスで指定します。例えば、JDK 6u2 の javac を実行するのであれば、"C:\Program Files\Java\jdk1.6.0_02\bin\javac" となります。

CLASSPATH変数には、 Javaプログラムのパスを設定するものです。CLASSPATHの値であるパス上に存在する *.class ファイルは java によって自動的に探索されるようになります。特に、CLASSPATHには、必ず ;. を含めておく必要があります。ピリオド . は、カレント・ワーキング・ディレクトリというものを表す、特殊な記号なのです。「カレント・ワーキング・ディレクトリ」が何であるかは、ファイルシステムを参照してください。

Windows XP での CLASSPATH 設定
図:Windows XP での CLASSPATH 設定

環境変数 CLASSPATH を例にとって、設定方法を紹介します。

Windows NT系 (NT4, 2000, XP)

Windows NT系(2000, XP)で環境変数を登録するには、「コントロール パネル」 -> 「システム」を開いて、タブ「詳細(詳細設定)」の中の、ボタン「環境変数」を押下。開いた「システムの環境変数」で、CLASSPATHを選択してボタン「編集」を押下することでセットできます。既存の定義との区切り文字はセミコロン( ; )です。

セットした後、ボタン「OK」を押下した後に開いたコマンド プロンプトで、コマンド "set CLASSPATH" を発行すれば、反映されていることが確認できるでしょう。

PATH 変数の場合も同様です。

Windows 9x系 (95, 98, 98SE, Me)

Windows 9x系(98, Me)の場合は、"c:\autoexec.bat"をテキスト・エディタ(メモ帳)で開いて、"set CLASSPATH=xxx;xxx;xxx"の記述の中に、*.class ファイルを探索してほしいディレクトリの絶対パスを含めます。初めて設定する場合は、set CLASSPATH=xxxx の行をファイル末尾に追加してください。この場合も、既存の定義との区切り文字はセミコロンです。

【例】

set CLASSPATH=C:\xerces-2_5_0\xml-apis.jar;C:\xerces-2_5_0\xercesImpl.jar;C:\xerces-2_5_0\xercesSamples.jar;.

DOSプロンプトでコマンド"c:\autoexec.bat"を発行するか、再起動することによって反映されます。DOSプロンプトでコマンド"set CLASSPATH"を発行することで反映されていることが確認できます。

尚、Meの場合は、「スタート」->「プログラム」->「アクセサリ」->「システムツール」->「システム情報」から、「Microsoft ヘルプとサポート」を開いて、「ツール」->「システム設定ユーティリティ」 を選択して、「環境」タブの中で環境変数を設定することもできます。

環境変数の確認

環境変数の設定/反映後にコマンドプロンプト(DOSプロンプト)を起動して、次のコマンドにより、環境変数が有効になったことを確認できます。

C:\>echo %PATH%
xxxxxx;C:\Program Files\Java\jdk1.6.0_02\bin

C:\>echo %CLASSPATH%
.;C:\Program Files\Java\jre1.6.0_02\lib\ext\QTJava.zip

実行/コンパイルに必要な外部のパッケージを使っている場合は、上記の環境変数の設定方法を参照して、該当パッケージへのパスを追記してください。特に、カレントワーキングディレクトリが最優先になっているので、カレントよりも優先して探索して欲しいディレクトリが存在する場合は、ピリオドより先に記述してください。

実行確認

今回インストールした JDK は、マウスによるグラフィカルな操作ではなく、コマンド・ベースで利用するものです。正しくインストールできたか確かめましょう。

Windows の場合は、「DOSプロンプト」または「コマンド プロンプト」を使います。「スタート」メニューから「プログラム」、「アクセサリ」とたどって、「コマンド プロンプト」をクリックして起動します。

Windows 2000 の「コマンド プロンプト」の起動時の画面
図:Windows 2000 の「コマンド プロンプト」の起動時の画面

カーソルが点滅しており、コマンド入力待機状態になっているので、次のコマンドを入力して Enter キーを押してください。

java -version

PATH変数も正しくセットされていれば、次のような実行結果が返ってくるはずです。次の例の、 java -versionjavac -version が、自分で入力した文字列です。

C:\>java -version
java version "1.6.0_02"
Java(TM) SE Runtime Environment (build 1.6.0_02-b06)
Java HotSpot(TM) Client VM (build 1.6.0_02-b06, mixed mode, sharing)

C:\>javac -version
javac 1.6.0_02

C:\>

これは Java Virtual Machineとコンパイラjavacのバージョン情報です。うまく行かない場合は、本文書の下のほうに掲載されている問題判別を参照してください。

同じく、 java -help と入力すれば、インタープリタ JVM を起動するための java コマンドの使い方が見られます。

C:\>java -help
Usage: java [-options] class [args...]
           (to execute a class)
   or  java [-options] -jar jarfile [args...]
           (to execute a jar file)

where options include:
    -client       to select the "client" VM
    -server       to select the "server" VM
    -hotspot      is a synonym for the "client" VM  [deprecated]
                  The default VM is client.

    -cp <class search path of directories and zip/jar files>
    -classpath <class search path of directories and zip/jar files>
                  A ; separated list of directories, JAR archives,
                  and ZIP archives to search for class files.
    -D<name>=<value>
                  set a system property
    -verbose[:class|gc|jni]
                  enable verbose output
    -version      print product version and exit
    -version:<value>
                  require the specified version to run
    -showversion  print product version and continue
    -jre-restrict-search | -jre-no-restrict-search
                  include/exclude user private JREs in the version search
    -? -help      print this help message
    -X            print help on non-standard options
    -ea[:<packagename>...|:<classname>]
    -enableassertions[:<packagename>...|:<classname>]
                  enable assertions
    -da[:<packagename>...|:<classname>]
    -disableassertions[:<packagename>...|:<classname>]
                  disable assertions
    -esa | -enablesystemassertions
                  enable system assertions
    -dsa | -disablesystemassertions
                  disable system assertions
    -agentlib:<libname>[=<options>]
                  load native agent library <libname>, e.g. -agentlib:hprof
                    see also, -agentlib:jdwp=help and -agentlib:hprof=help
    -agentpath:<pathname>[=<options>]
                  load native agent library by full pathname
    -javaagent:<jarpath>[=<options>]
                  load Java programming language agent, see java.lang.instrument

    -splash:<imagepath>
                  show splash screen with specified image

C:\>

同じく、 javac -help を発行すれば、 Java コンパイラである javac コマンドの使用方法を見ることができます。

C:\>javac -help
使い方: javac <options> <source files>
使用可能なオプションには次のものがあります。
  -g                         すべてのデバッグ情報を生成する
  -g:none                    デバッグ情報を生成しない
  -g:{lines,vars,source}     いくつかのデバッグ情報だけを生成する
  -nowarn                    警告を発生させない
  -verbose                   コンパイラの動作についてメッセージを出力する
  -deprecation               推奨されない API が使用されているソースの位置を出力
する
  -classpath <path>          ユーザークラスファイルおよび注釈プロセッサを検索す
る位置を指定する
  -cp <path>                 ユーザークラスファイルおよび注釈プロセッサを検索す
る位置を指定する
  -sourcepath <path>         入力ソースファイルを検索する位置を指定する
  -bootclasspath <path>      ブートストラップクラスファイルの位置を置き換える
  -extdirs <dirs>            インストール済み拡張機能の位置を置き換える
  -endorseddirs <dirs>       推奨規格パスの位置を置き換える
  -proc:{none,only}          注釈処理やコンパイルを実行するかどうかを制御します
。
  -processor <class1>[,<class2>,<class3>...]実行する注釈プロセッサの名前。デフォ
ルトの検出処理をバイパス
  -processorpath <path>      注釈プロセッサを検索する位置を指定する
  -d <directory>             生成されたクラスファイルを格納する位置を指定する
  -s <directory>             生成されたソースファイルを格納する場所を指定する
  -implicit:{none,class}     暗黙的に参照されるファイルについてクラスファイルを
生成するかどうかを指定する
  -encoding <encoding>       ソースファイルが使用する文字エンコーディングを指定
する
  -source <release>          指定されたリリースとソースの互換性を保つ
  -target <release>          特定の VM バージョン用のクラスファイルを生成する
  -version                   バージョン情報
  -help                      標準オプションの概要を出力する
  -Akey[=value]              注釈プロセッサに渡されるオプション
  -X                         非標準オプションの概要を出力する
  -J<flag>                   <flag> を実行システムに直接渡す


C:\>

JDKには、JVMであるjavaとコンパイラであるjavacのほかにも、多くのツールがインストールされています。詳細は、Sun Microsystemsが公開している、ツールドキュメントを参照ください。

テキスト・エディタに次のコードを貼り付けて、 "C:\java" に "Howdy.java" というファイル名で保存してください。大文字と小文字、全角と半角を区別するので、正しく入力してください。テキストエディタとは、テキスト形式のファイルを閲覧/編集/作成するツールであり、全ての OS で最初から使えるようになっています。 Windows ではメモ帳、UNIX/Linux では Vi, EMACS (MULE) などが使えるようになっています。

class Howdy {
    public static void main(String[] args) {
        System.out.println("Howdy, Java!");
        System.out.println("こんにちは、Java!");
    }
}

コマンドラインから、上記のファイルが存在するディレクトリに移動して、コマンド "javac Howdy.java" を発行し、続いて "java Howdy" を発行してください。実際には次のようになります。

C:\>cd java

C:\java>javac Howdy.java

C:\java>java Howdy
Howdy, Java!
こんにちは、Java!

問題判別

ダウンロードファイルの確認

最初に、正しくダウンロードされたか確認してください。ダウンロードサイトでは、ダウンロードする圧縮ファイルのサイズが明記されています。これが、実際に自分の PC にダウンロードされたファイルと同じかどうか確認してください。ここで失敗していれば、なにをやってもどうにもなりません。

解凍結果の確認

正しくダウンロードできていれば、次に確認するのは、正しく解凍されたかどうかです。

圧縮ファイルは解凍というプロセスで元に戻します。圧縮/解凍ツールは「窓の杜」などのサイトで多くの種類が入手できます。サイズも小さいので、色々試してみることが一番です。簡単で、対応圧縮形式が多いものを選びましょう。

PATH 変数の確認

次のように返されたらば、インストールディレクトリと PATH 変数の値が合っていません。PATH 変数の値の、大文字と小文字、ピリオドと下線などの区別に注意して、もう一度設定しなおして、改めてコマンドラインを起動してやり直してください。

C:\java>javac Howdy.java
'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

ソースファイルの確認

次のように返されたらば、単に Howdy.java が存在しないことを意味します。 Howdy.java が目的のディレクトリに存在するのか、ファイル名は正しいか、コマンドラインでカレントディレクトリが目的のディレクトリに移動しているのかというあたりを確認してください。

C:\java>javac Howdy.java
エラー: Howdy.java を読み込めません。
エラー 1 個

カレントディレクトリに Howdy.java があるかどうかは、次のコマンドで確認できます。

C:\java>dir /B Howdy.java
Howdy.java

CLASSPATH の確認

次のように返されたらば、 CLASSPATH が誤っています。ソースコードで、大文字と小文字が間違っていないか確認してください。CLASSPATH に . (ピリオド)が含まれているか確認してください。コマンドラインのカレントディレクトリと Howdy.class が存在するディレクトリが同じことを確認してください。

C:\java>java HowdyJava
Exception in thread "main" java.lang.NoClassDefFoundError: HowdyJava

カレントディレクトリに Howdy.class があるかどうかは、次のコマンドで確認できます。

C:\java>dir /B Howdy.class
Howdy.class

当該ディレクトリ内に、Howdy.javaHowdy.class 以外が存在しなければ、次のようにすれば、二つのファイルだけがリストされるはずです。

C:\java>dir /B
Howdy.class
Howdy.java

上のようにして、思うように結果が返らなければ、カレントディレクトリ(上の例では C:\java)にソースファイルやクラスファイルが存在していないことが原因です。 Howdy.java をどこに保存したのか確認して、 cd コマンドによって、そのファイルが存在するディレクトリまで適切に移動してから javac Howdy.java コマンドや java Howdy コマンドを実行してみてください。

コマンド java のオプションの -classpath を使うことでパスを指定することもできます。コマンド "java -classpath . Howdy" を発行して実行できるのならば、 CLASSPATH にピリオドが含まれていないことが原因だと特定できます。

C:\java>java -classpath . Howdy
Howdy, Java!
こんにちは、Java!

DOS プロンプトの設定

Windows 9x 系をご利用の場合は、次の設定をご確認ください。これは渡辺さんからご教示いただいた内容です。

Windows Meを使用して、かつDOSプロントのプロパティで「MS-DOSプログラムで Windowsを検出しない(P)」にチェックを入れているとPATHを設定しても

C:\WINDOWS>java -version
This program cannot be run in DOS mode.

と返されてしまい、javac等も同様に返答され使用できません。また、チェックを外しDOSプロントを再起動すると治ります。



Copyright © 2001-2007 SUGAI, Manabu. All Rights Reserved.