コンテンツにスキップ

JavaXPCOM

出典: フリー百科事典『ウィキペディア(Wikipedia)』

これはこのページの過去の版です。Bcxfu75k (会話 | 投稿記録) による 2021年8月1日 (日) 04:28個人設定で未設定ならUTC)時点の版 (<source> -> <syntaxhighlight>)であり、現在の版とは大きく異なる場合があります。

JavaXPCOMは、XPCOMJavaバインディングである。XULRunnerに同梱されており、これを使用することでJavaからXPCOMコンポーネントの利用が可能となる。

利用方法

XULRunnerがインストールされていることが前提となる。ここでは、/opt/xulrunner/1.8.0.4にインストールされたLinux版を元に、例示する。

CLASSPATHの設定

CLASSPATHにMozillaInterfaces.jarを追加する。

export CLASSPATH=$CLASSPATH:/opt/xulrunner/1.8.0.4/xulrunner/sdk/lib/MozillaInterfaces.jar

コンポーネントの利用

インポート

インポートするパッケージは、'org.mozilla.xpcom.*'となる。XULRunnerには、1,000を越えるコンポーネントが含まれるが、すべてこのパッケージに属している。 <syntaxhighlight lang="java"> import org.mozilla.xpcom.*; </source>

GREパスの取得

GREパス、つまりXULRunnerのインストール場所を取得する。取得したパスは、XPCOMの初期化時に使用する。

<syntaxhighlight lang="java"> GREVersionRange[] range = new GREVersionRange[1]; range[0] = new GREVersionRange("1.8", true, "1.9+", true); Properties props = null;

File grePath = null; try {

   grePath = Mozilla.getGREPathWithProperties(range, props);

} catch (FileNotFoundException e) { }

if (grePath == null) {

   System.out.println("found no GRE PATH");
   return;

} </source>

Mozillaオブジェクトの取得

Mozillaオブジェクトを取得する。

<syntaxhighlight lang="java"> Mozilla mozilla = Mozilla.getInstance(); </source>

XPCOMの初期化

<syntaxhighlight lang="java"> try {

   mozilla.initialize(grePath);
   mozilla.initXPCOM(grePath, null);

} catch (IllegalArgumentException ex) {

   System.out.println("no javaxpcom.jar found in given path");
   return;

} catch (Exception ex) {

   System.out.println("initXPCOM failed");
   ex.printStackTrace();
   return;

} </source>

コンポーネントマネージャの取得

<syntaxhighlight lang="java"> nsIComponentManager componentManager = mozilla.getComponentManager(); </source>

XPCOMコンポーネントの取得

Contract IDを使って、コンポーネントをインスタンス化する。

<syntaxhighlight lang="java"> nsIMutableArray array = (nsIMutableArray)componentManager.createInstanceByContractID(

       "@mozilla.org/array;1",
       null,
       nsIMutableArray.NS_IMUTABLEARRAY_IID);

</source>

XPCOMのシャットダウン

<syntaxhighlight lang="java"> mozilla.shutdownXPCOM(null); </source>

関連項目

外部リンク