今回の内容エクステンションメカニズムの種類(1)インストール拡張(2)ダウンロード拡張エクステンション(拡張)メカニズムとは、クラスライブラリ(ある特定の目的に利用できるクラスの集まりのこと)を、クラスパスに指定せずに利用するためのメカニズムです。エクステンションメカニズムが登場する前は、クラスライブラリを利用するアプリケーションは、あらかじめ、どのクラスライブラリを利用するかを調べ、そのクラスライブラリの位置を調べ、それらのクラスライブラリをクラスパスに指定しなければなりませんでした。この作業は、クラスライブラリが少ないうちはよいのですが、利用するクラスライブラリが多いと非常に面倒なことになります。エクステンションメカニズムを用いることで、この面倒なクラスパスの設定を回避することができます。エクステンションメカニズムの種類エクステンションメカニズムにはインストール拡張とダウンロード拡張の2種類があります。次にダウンロード拡張について説明します。Javaの実行環境に、新たにクラスライブラリを追加する機能のことです。標準クラスライブラリであるかのように、クラスパスを指定しなくてもアプリケーションから利用することができます。javacなどでもクラスパスを指定せずに利用できます。path)を正しく使う」を参照してください。インストール拡張を行うためには、JARファイルとしてまとめてあるクラスライブラリを、“ある特定のディレクトリ”に置きます。これだけで、そのクラスライブラリはクラスパスを指定しなくても、アプリケーションから利用することができます。以下では、その“ある特定のディレクトリ”について説明します。SDKがインストールされているディレクトリ下のディレクトリjre\lib\extを指します。SDKをディレクトリC:\jdk1.3にインストールしたとすると、ディレクトリC:\jdk1.3\jre\lib\extとなります。このディレクトリにJARファイルを置けばよいのです、が、ここにちょっとした落とし穴があります。Files\JavaSoft\JRE\<バージョン番号>\以下にインストールされます。Files\JavaSoft\JRE\<バージョン番号>\lib\extとなります。このため、こちらのディレクトリにもJARファイルを置く必要があります。ちなみに、javaコマンドを実行すると、通常それはJREのjavaコマンドを実行したことになります。Files\JavaSoft\JRE\<バージョン番号>\lib\extとなります。SDKのjavaコマンドを内部で実行します。SDKをディレクトリC:\jdk1.3にインストールしたとすると、C:\jdk1.3\jre\lib\extとなります。このため、もしどちらかのディレクトリにしかJARファイルを置かないと、「実行できるけどコンパイルできない」とか「コンパイルできるけど実行できない」などの不可思議な現象が起こりますので注意してください。(2)ダウンロード拡張ダウンロード拡張とは、あるJARファイル中のクラスで使われているクラスライブラリを、自動的にクラスパスに追加できる機能のことです。具体的には、クラスライブラリの作成者は、作成するJARファイル中に、そのJARファイル中のクラスで利用されるクラスライブラリのクラスパスを記述します。VMは、そのJARファイル中のクラスを読み込むときに、そのJARファイルに指定してあるクラスパスを、自動的にクラスの検索場所に追加します。このため、そのクラスライブラリを利用する場合に、よけいなクラスパスを設定する必要がなくなります。ダウンロード拡張は、アプレットを複数のJARファイルで実現するときに用います。クラスライブラリのユーザーによるクラスパスの設定の手間を省くためにも用います。インストール拡張と比べて、ダウンロード拡張はあまり使われていないようなので、ここではこれ以上の説明は省略します。(2017/5/9)ログ基盤の構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。(2017/4/6)ログ基盤を実現するFluentd+Elasticsearch+Kibanaについて、構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。(2017/4/3)初心者が、Java言語を使ったAndroidのスマホアプリ開発を通じてプログラミングとは何かを学ぶ連載。初回は、プログラミングとビルド、Androidアプリ開発、Javaに関する基礎知識を解説する。