Revised: June/17th/2007; Since: Dec./21st/2001
Java は Sun 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 がオープンソースに寄贈したものだからです。
Sun Microsystems が公開している Java2 の種類(プラットフォーム)には次の三つの種類があります。
上記の三つのプラットフォームは、2005年6月以前は、次のように呼称されていました。
三つのプラットフォーム間の違いについては別項で説明しますが、最も標準的なのは Standard Edition です。
| バージョン | リリース日 | コードネーム | 備考 |
|---|---|---|---|
| JDK 1.0 | Feb, 1996 | 最初の正式リリース | |
| JDK 1.1 | Feb 20, 1997 | 最初の正式リリースアップ | |
| JDK 1.1.4 | Sept 12, 1997 | Sparkler | |
| J2SE 1.2 | Dec 4, 1998 | Playground | Java 2と改称。三つのプラットフォーム制導入。 |
| J2SE 1.3.0 | May 8, 2000 | Kestrel | |
| J2SE 1.4.0 | Feb 13, 2002 | Merlin | |
| J2SE 5.0 (1.5.0) | Sept 29, 2004 | Tiger | 1.5から5.0へバージョン規則変更。 |
| Java SE 6 (1.6.0) | Dec 11, 2006 | Mustang | Java 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をアンインストールして、必要なバージョンをインストールするようにお勧めします。
以下では、 Java(TM) SE Development Kit 6 Update 2
のWindows版のダウンロード方法を示します。別のOSや異なるバージョンをダウンロードする場合は、適宜読み替えてください。
Required: You must accept the license agreement to download the product.の
Review License Agreementを確認して、ラジオボックス
Review License Agreementにチェック
Windows Platform - Java(TM) SE Development Kit 6 Update 2の
Windows Offline Installation, Multi-languageをクリックしてダウンロードを開始
※特定の目的がある場合は、該当のバージョンを過去の SDK/JDKの中から選んでください。
Java のライブラリの仕様書は API ドキュメントとして公開されています。 SDK と同時に、 API 仕様書も入手しておきます。
Accept License Agreementにチェック
Java(TM) SE Development Kit Documentation 6, Japaneseをクリックしてダウンロードを開始
OSごとの導入方法を Sun Microsystemsが公開しています(インストール手順)。サポート対象のシステム構成については、インストール前に確認してください。
先ほどダウンロードした導入 *.exe ファイルをダブルクリックします。
C:\Program Files\Java\jdk1.6.0_02"。以上で開発環境の導入が完了しました。
コマンドラインを開いて、コマンド "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:\>
正しくインストールされていることが確認できると思います。
先ほどダウンのロードした文書の 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 設定 |
|---|
環境変数 CLASSPATH を例にとって、設定方法を紹介します。
Windows NT系(2000, XP)で環境変数を登録するには、「コントロール パネル」 -> 「システム」を開いて、タブ「詳細(詳細設定)」の中の、ボタン「環境変数」を押下。開いた「システムの環境変数」で、CLASSPATHを選択してボタン「編集」を押下することでセットできます。既存の定義との区切り文字はセミコロン( ; )です。
セットした後、ボタン「OK」を押下した後に開いたコマンド プロンプトで、コマンド "set CLASSPATH" を発行すれば、反映されていることが確認できるでしょう。
PATH 変数の場合も同様です。
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 の「コマンド プロンプト」の起動時の画面 |
カーソルが点滅しており、コマンド入力待機状態になっているので、次のコマンドを入力して Enter キーを押してください。
java -version
PATH変数も正しくセットされていれば、次のような実行結果が返ってくるはずです。次の例の、 java -version、javac -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 変数の値の、大文字と小文字、ピリオドと下線などの区別に注意して、もう一度設定しなおして、改めてコマンドラインを起動してやり直してください。
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 に . (ピリオド)が含まれているか確認してください。コマンドラインのカレントディレクトリと 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.java と Howdy.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!
Windows 9x 系をご利用の場合は、次の設定をご確認ください。これは渡辺さんからご教示いただいた内容です。
Windows Meを使用して、かつDOSプロントのプロパティで「MS-DOSプログラムで Windowsを検出しない(P)」にチェックを入れているとPATHを設定しても
C:\WINDOWS>java -version This program cannot be run in DOS mode.
と返されてしまい、javac等も同様に返答され使用できません。また、チェックを外しDOSプロントを再起動すると治ります。