アプリケーションへのパス
Mac OS
には検索パスはありません。このため、実際のファイルパスを使ってアプリケーションを指定する必要があります。たとえば、「netscape」というアプリケーションを直接参照することは不可能です。しかし、この処理を実行するためにはいくつかの方法が用意されています。
相対パス
起動しようとしているアプリケーションが実行中のアプリケーションを基準とする既知の位置にある場合は
(つまり、両方のアプリケーションが同一のインストールファイルの一部である場合)、現在のアプリケーションを基準とするパスを指定することができます。この方法は、JBindery
を使ってビルドしたアプリケーションを実行していて、目的のコードを
JBindery
そのものから直接実行しない場合だけ、信頼できる動作を行います。
ユーザ初期設定
起動するアプリケーションが独自のインストールファイルの一部でない場合は
(たとえば、それが SimpleText や Web
ブラウザのような標準的なアプリケーションである場合)、絶対パスを指定する必要があります。
絶対パスを指定する上で、最も合理的かつクロスプラットフォームに対応した方法といえば、パスを初期設定ファイルに格納することです。初期設定がまだ存在しない場合、あるいは初期設定ファイルに格納されているパスを使用しようとしてうまくいかない場合は、ダイアログボックスを表示してユーザにアプリケーションの選択を要求し、そのパスを初期設定ファイルに格納してください。初期設定ファイルを使って正しいパスを設定する方法については、「Technote
1134 The Preferences Problem」を参照してください。
クリエータによる検索
Mac 固有のコードを使用するつもりがある場合は、Mac OS
独自の仕組みを使用し、アプリケーションのクリエータコードを指定してアプリケーションを自動的に検索するのが望ましい方法といえます。クリエータコードとは、そのアプリケーションに割り当てられている
4 文字の一意なコードのことです。
任意のアプリケーションのクリエータを知るには、ResEdit
の「Get File/Folder
Info」コマンドを使用します。次に、よく使用されるいくつかのアプリケーションのクリエータを示します。
|
Microsoft Internet Explorer
|
MWIE
|
|
Netscape Navigator
|
MOSS
|
|
SimpleText
|
ttxt
|
|
Finder
|
FNDR
|
MRJ SDK (大部なマニュアルを含む)
の一部として提供されている MRJToolkit
ライブラリには、クリエータコードを引数として取り、アプリケーションを指す
File オブジェクトを返す findApplication
メソッドが用意されています。このメソッドは次のように使用します。
import com.apple.mrj.*;
...
File app = MRJFileUtils.findApplication(new MRJOSType("ttxt"));
|
JConfig による自動的な検索
Samizdat Productions から提供されている JConfig
ライブラリには、任意の URL
のタイプに対応したユーザが好むヘルパーアプリケーションを検索する機能が用意されています。この処理は、Runtime.exec
の最も一般的な使い方の 1 つです。
|