†JXTAについて調べているときに、IBMの記事を見つけました。JXTAの概念、JXTA2に採用された新しいテクノロジーなどが、分かりやすく紹介されています。この記事の中で、サイレントスタートのための仕組みが解説されています。JXTAのプログラムを起動するときには、初回にかなり沢山の設定ファイルをユーザーに入力してもらう必要がありました。....が、エンドユーザーに提供するアプリケーションでそんなことできるわけありません。起動してもなんとなく動いてる状態が理想なのです。複雑な設定処理を回避するために、この記事では初期設定ファイルを自動的に作成するサイレントスタートプログラムのサンプルを掲載しています。SHELL?を起動するためのスターターのようです。APIではさっぱり動きません(ーー;。初期設定関係のAPIがごっそり変更になっていまして(記事でもそのようなことが書いています)、古いコードのこの記事は全然参考にならないのですよねぇ~。いうことで、APIのソースコードをデバッグでステップ実行しながら追いかけた結果、とりあえず今はこうすればいい....らしい、というものをでっち上げました。以下、書き換えたプログラムコードです。自動構成機能を付加したシェルスターター。JXTAの構成を自動作成します。†えーと、オリジナルソースの影響をそこかしこに受けている初期化ルーチンです。本当はもうちょっとリファクタリングして、初期化プロセスだけを抜き出すべきなのですが、面倒なので今はこのままで(^^;初期化処理は以下のパートに分かれます。JXTA設定ファイルを読み込むための環境変数を設定する。JXTA設定ファイルの存在を確認し、存在しなければ以下の処理を行う。定義の基礎プロファイルから設定オブジェクトを作成する。足りない設定を定義する。設定オブジェクトよりJXTA設定ファイルをセーブする。APIと環境変数両方使って、設定ファイルの場所を通知してやらないといけないのがなんとなく納得できないのですが(ーー;、とりあえずここまで修正することで、サイレントスタートが可能になりました。jxta.org.impl.*なオブジェクト(API以外の部分)も、シェル本体であるBootを除いて排除できています。設定情報の作成で重要なのは、定義作成クラスであるnet.jxta.ext.config.Configuratorと、主要な定義を保持しているnet.jxta.ext.config.Profileです。Profileから基本的な定義を選択した上でConfiguratorオブジェクトを作成し、更に足りない情報を設定していく流れですね。唯一元IBMの記事にある「マルチキャストの無効化」の方法が掴めませんでしたが、複数同時起動とその通信はなんとなく出来ているっぽいので調査は保留しました。「ハローワールドはしない」と言いましたが、そう言いつつやっぱりやります(^^;。JXTAらしく仮想ネットワークを経由したものになります。ゆーかやっぱりゴーストにしゃべらせたいよね♪さてさて....。