LSBackgroundOnly

AWTをロードする時点でクラッシュする訳だから、JVMを別に立ち上げてしまおう、と言う訳でRMIでポート一つ占領してまでやらせたはいいものの、どこか挙動に妙な所がある。どうやらメニューバーやDockのアイコンが出て来なくともAWTをロードした時点でアプリケーションがそのまま前に出て来るみたいで、一見本体のアプリケーションが前面にありながらメインウインドウがインアクティブになると言う不可思議な現象が。
Serviceを作る時に使ったNSBGOnlyが使えないなぁと思いながらLSUIElementを使ったのだけどそれだとDockに出て来ないだけで「GUIは持っている」と判断されるらしい。そこで同じLaunchService用のキーであるLSBackgroundOnlyも使ってみたけどうまくいかない。漁って回るとどうやらLSBackgroundOnlyはJVMのオプションにcom.apple.backgroundOnlyと言うプロパティを自動的に設定するらしい。
試しにサブのJVMでcom.apple.backgroudnOnlyプロパティを取得してみるとちゃんと設定されている。ならこのプロパティに関して検索してみると、どうやらJRE1.3用の独自拡張でjava.awt.headlessの代わりらしい。