Q: Java 製品を Mac OS X に移植しています。他のプラットフォームでの JDK のインストレーションに共通するディレクトリとパスに相当するものは何ですか?
A: J2SE はすべての Mac OS X にプリインストールされているコンポーネントであるため、Java VM の場所と構造は管理され、一貫しています。Java 関連のパスおよびディレクトリの情報を取得するために、ユーザからの入力は必要ありません。
Java ホーム。多くの Java アプリケーションは、インストール時に "Java ホーム" ディレクトリを指定する必要があります。Mac OS X ではこれに相当するものは、常に /Library/Java/Home です。実際には、これは現在インストールされているバージョンの J2SE へのシンボリックリンクで、これを使うと、java、javac などのコマンドラインツールのある bin サブディレクトリに期待通りにアクセスできます。リンク先の実際のディレクトリではなく、このリンクを使う利点は、Software Update によって新しいバージョンの Java がダウンロードされたり、Mac OS X の新しいバージョンによってインストールされたりしたときに、維持され、更新されることです。そのため、リンクがアップデートされたときに、Java の新しいバージョンのリンクが参照する実ディレクトリが以降のアップデートによって失われないように、Java ホームの下にはファイルをインストールしないことが重要です。
拡張ライブラリ。Mac OS X 以外のプラットフォームの Java ソフトウェアは、JDK のインストレーション内の lib/ext ディレクトリを使って、サポートクラスまたは jar ファイルを格納することがよくあります。Mac OS X の Java ホームにも lib/ext ディレクトリがありますが、上記と同じ理由から、このディレクトリを直接使うことはお勧めしません。Java ホームの場合と同じように、アップルは、拡張ライブラリを置くための標準化されたパスを提供しています。システムのクラスパスに置く必要のある追加の jar ファイルや JNI ライブラリには、/Library/Java/Extensions ディレクトリを使用できます。アクセスの制御を高める場合は、特定のユーザのホームディレクトリの ~Library/Java/Extensions ディレクトリを、サポートライブラリのユーザレベルのインストール先として使用できます。どちらのディレクトリに置かれる項目も、アプリケーションのクラスパスで指定する必要はなく、該当する適用範囲(どちらのディレクトリを使うかによって、ユーザレベルまたはシステムレベル)で実行するすべてのアプリケーションから利用できます。
これらの拡張ディレクトリは jarファイルおよび JNI ライブラリ専用であることに注意してください。クラスファイルのディレクトリは、パッケージに合わせて適切に配置されていたとしても認識されません。提供されているこれらの拡張ディレクトリを使う場合は、サポート Java クラスを jar ファイルにパッケージ化します。JNI ライブラリはそのまま使用できます。
ユーザの初期設定。多くのアプリケーションは、設定値とユーザの初期設定を保存するために、自身がインストールされるディレクトリ構造を使用します。そうでないアプリケーションは、ホストのプラットフォームにあるシステムの初期設定を使おうとします。後者の場合、Mac OS X では、ユーザ設定がユーザごとにあれば、アプリケーションのユーザ設定は、通常は ~/Library/Preferences ディレクトリに保存されます。このディレクトリには、user.home システムプロパティに文字列 "Library/Preferences" を追加することによって、Java コードから到達できます。すべてのユーザに対してグローバルな設定のあるアプリケーションは、ルートの /Library/Preferences に設定を置くことができます。
[2003 年 10 月 21 日]
|