JavaXPCOM

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を越えるコンポーネントが含まれるが、すべてこのパッケージに属している。

import org.mozilla.xpcom.*; 

GREパスの取得

[編集]

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

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; } 

Mozillaオブジェクトの取得

[編集]

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

Mozilla mozilla = Mozilla.getInstance(); 

XPCOMの初期化

[編集]
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; } 

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

[編集]
nsIComponentManager componentManager = mozilla.getComponentManager(); 

XPCOMコンポーネントの取得

[編集]

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

nsIMutableArray array = (nsIMutableArray)componentManager.createInstanceByContractID(         "@mozilla.org/array;1",         null,         nsIMutableArray.NS_IMUTABLEARRAY_IID); 

XPCOMのシャットダウン

[編集]
mozilla.shutdownXPCOM(null); 

関連項目

[編集]

外部リンク

[編集]