タイトル31バイトのファイル名制限を最初に克服するのはJavaコンパイラカテゴリーJava, Mac OS 9, Mac OSテクノロジー
作成日1999/10/8 0:48:43作成者新居雅行
Mac OS 9には、HFS+APIという新しいファイル処理のシステム機能が加わっている。この機能を使うと、HFS+の特徴を十分に出すことができ、UNICODEで255バイトまでのファイル名で処理することができる。ただし、既存のアプリケーションは従来のファイル処理機能を使うため、31バイトまでの制約は残る。Finderも同様で、通常使う上では31バイトの制約は今後も残ることだろう。

しかしながら、もう少し待てばHFS+APIを使うアプリケーションが登場する。Mac OS Runtime for Java(MRJ)の次期バージョン、Ver.2.2のJavaコンパイラ(javac)などが、HFS+APIを利用するようになっていることが、MRJのメーリングリストで明らかになった。Javaのソースファイルやコンパイル結果のファイルは内部クラスのサポートを機に、31バイトを超える長さになるものが一般的になっていたため、Javaのプログラム開発はMac OSではいろいろと制約があった。その制約をHFS+APIを使って解決するというのが、MRJ 2.2での「ロングファイル名対応」の実態だったわけだ。なお、現在MRJ 2.2ea2が配付されているが、Mac OS 9では使わないようにとの指示がある。たぶん、次のEA版くらいで実際に利用できるようになるものだと思われる。

ただし、こうして31バイト名を超えるコンパイル結果のファイル名も、Finder上では31バイトに切り詰められて表示されることになる。また、開発ツールのCodeWarrior自体がHFS+APIに対応しないと、CodeWarriorでの処理結果ファイルは31バイトまでのファイル名の制約にひっかかることになる。MRJのコンパイラ(MRJ SDK)だけがロングファイル名に対応しても、それほど大きなメリットではないかもしれないが、Mac OSの最大の弱点が克服される瞬間を体験したいのでれば、MRJ SDK 2.2を使ってみよう。おそらく作業的には、ロングファイル名のコンパイル結果を、31バイトまでの長さのJARファイルにまとめるという風にできるものと期待できる。従って、MRJ SDKでの開発作業が今までに比べていくらかスムーズになることも確かである。

なお、FinderがHFS+APIに対応する可能性については、かなり否定的なようだ。AppleはMac OS Xに忙しく、Mac OS 9系列のFinderに大幅に手を入れる気配はない模様だ。

関連リンク