diff options
Diffstat (limited to 'files/ja/mozilla/tech/xpcom/language_bindings/javaxpcom')
5 files changed, 0 insertions, 281 deletions
diff --git a/files/ja/mozilla/tech/xpcom/language_bindings/javaxpcom/development/index.html b/files/ja/mozilla/tech/xpcom/language_bindings/javaxpcom/development/index.html deleted file mode 100644 index 6d9b1ca50b..0000000000 --- a/files/ja/mozilla/tech/xpcom/language_bindings/javaxpcom/development/index.html +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: Development -slug: Mozilla/Tech/XPCOM/Language_Bindings/JavaXPCOM/Development -tags: - - JavaXPCOM - - 'XPCOM:Language Bindings' -translation_of: Mozilla/Tech/XPCOM/Language_bindings/JavaXPCOM/Development ---- -<p> -</p> -<h3 id=".E3.82.BD.E3.83.BC.E3.82.B9" name=".E3.82.BD.E3.83.BC.E3.82.B9"> ソース </h3> -<p>最新のソースコードは、Mozilla trunk上の {{ Source("extensions/java/xpcom") }} ディレクトリ内にあります。 -</p> -<h3 id=".E6.A7.8B.E7.AF.89.E6.89.8B.E9.A0.86" name=".E6.A7.8B.E7.AF.89.E6.89.8B.E9.A0.86"> 構築手順 </h3> -<p>ビルドの手順はここにあります: <a href="ja/Building_JavaXPCOM">Building JavaXPCOM</a>。 -</p> -<h3 id=".E3.83.90.E3.82.B0" name=".E3.83.90.E3.82.B0"> バグ </h3> -<p>すべての JavaXPCOM バグは、 <a class="external" href="http://bugzilla.mozilla.org/">Bugzilla</a>内で、"Core" プロダクトと "Java to XPCOM Bridge" コンポーネントを使って記録されています。 -</p> -<ul><li> 公開されている JavaXPCOMバグの<a class="link-https" href="https://bugzilla.mozilla.org/buglist.cgi?query_format=advanced&product=Core&component=Java+to+XPCOM+Bridge&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&chfieldto=Now">一覧</a> -</li><li> 新しい JavaXPCOMバグを<a class="link-https" href="https://bugzilla.mozilla.org/enter_bug.cgi?product=Core&component=Java+to+XPCOM+Bridge&rep_platform=All&op_sys=All">開く</a> -</li><li> 最近1ヶ月の<a class="external" href="http://bonsai.mozilla.org/cvsquery.cgi?treeid=default&module=all&branch=HEAD&branchtype=match&dir=mozilla%2Fextensions%2Fjava%2Fxpcom&file=&filetype=match&who=&whotype=match&sortby=Date&hours=2&date=month&mindate=&maxdate=&cvsroot=%2Fcvsroot">チェックイン</a> -</li></ul> -{{ languages( { "en": "en/JavaXPCOM/Development", "zh-cn": "cn/JavaXPCOM/\u5f00\u53d1" } ) }} diff --git a/files/ja/mozilla/tech/xpcom/language_bindings/javaxpcom/embedding_mozilla_in_a_java_application_using_javaxpcom/index.html b/files/ja/mozilla/tech/xpcom/language_bindings/javaxpcom/embedding_mozilla_in_a_java_application_using_javaxpcom/index.html deleted file mode 100644 index d523b94ce1..0000000000 --- a/files/ja/mozilla/tech/xpcom/language_bindings/javaxpcom/embedding_mozilla_in_a_java_application_using_javaxpcom/index.html +++ /dev/null @@ -1,156 +0,0 @@ ---- -title: Embedding Mozilla in a Java Application using JavaXPCOM -slug: >- - Mozilla/Tech/XPCOM/Language_Bindings/JavaXPCOM/Embedding_Mozilla_in_a_Java_Application_using_JavaXPCOM -tags: - - Embedding Mozilla - - JavaXPCOM - - 'XPCOM:Language Bindings' -translation_of: Archive/Mozilla/Embedding_Mozilla_in_a_Java_Application_using_JavaXPCOM ---- -<p> -</p><p><a href="ja/XULRunner">XULRunner</a>には<a href="ja/JavaXPCOM">JavaXPCOM</a>が標準搭載されており、これは、JavaのコードとXPCOMの相互利用を可能にするものです。この記事で示すとおり、JavaでのXPCOMオブジェクトの操作は、C++の場合とそれほど大きな差はありません。 -</p> -<h4 id="必要な環境"> 必要な環境 </h4> -<ul><li> Java 1.4.2 以降 -</li><li> <a href="ja/XULRunner">XULRunner</a> 1.8.0.1 以降 -</li></ul> -<h4 id="組み込み"> 組み込み </h4> -<p>Mozilla を Java アプリケーションに埋め込むためには、<tt>xulrunner/sdk/lib</tt>フォルダーにある<tt>MozillaInterfaces.jar</tt>というライブラリをclasspathに追加する必要があります。このライブラリは Mozilla をブートストラップし、XPCOM メソッドを呼び出すために必要なインターフェースを提供します。 -</p><p>組み込みを開始するために、<a href="https://dxr.mozilla.org/mozilla-central/source/extensions/java/xpcom/interfaces/Mozilla.java" rel="custom">Mozilla</a>共有クラスの提供するメソッドを使用します。はじめに、Java アプリケーションは適切な XULRunner installationを見つける必要があります。 -</p> -<pre class="eval"> Mozilla mozilla = Mozilla.getInstance(); - GREVersionRange[] range = new GREVersionRange[1]; - range[0] = new GREVersionRange("1.8.0", true, "1.9", false); - <span>// work with trunk nightly version 1.9a1 ^^</span> - - try { - File grePath = Mozilla.getGREPathWithProperties(range, null); - LocationProvider locProvider = new LocationProvider(grePath); - mozilla.initEmbedding(grePath, grePath, locProvider); - } catch (FileNotFoundException e) { - <span>// この例外は greGREPathWithProperties が GRE を見つけられなかったときに送出されます</span> - } catch (XPCOMException e) { - <span>// この例外は initEmbedding が失敗したときに送出されます</span> - } -</pre> -<p><code>LocationProvider</code>はJavaアプリケーションによって提供されるクラスです。これはインターフェース<a href="https://dxr.mozilla.org/mozilla-central/source/extensions/java/xpcom/interfaces/IAppFileLocProvider.java" rel="custom">IAppFileLocProvider</a>を実装しているもので、 -and tells XPCOM where to find certain files and directories. -</p><p><code>initEmbedding</code>メソッドは embedding process を開始するもので、Java アプリケーションと XPCOM や Mozilla の連携を可能にするものです。ひとたび Java アプリケーションが Mozilla を使う作業を終えたとき、それは embedding process を terminate する必要があります。 -</p> -<pre class="eval"> try { - mozilla.termEmbedding(); - } catch (XPCOMException e) { - <span>// この例外は termEmbedding が失敗したときに送出されます</span> - } -</pre> -<h4 id="XPCOMオブジェクトを利用する"> XPCOMオブジェクトを利用する </h4> -<p>Mozilla が組み込まれると、Java アプリケーションは XPCOM オブジェクトを利用することができるようになります。<code>Mozilla</code> クラスはこれの手助けをするメソッドを提供しており、たとえば、<code>getServiceManager</code>、<code>getComponentManager</code>、<code>newLocalFile</code>があります。JavaXPCOM により、 Java アプリケーションがXPCOM オブジェクトを取得し、メソッドを呼び出すのに加え、Java クラスオブジェクトを XPCOM メソッドに渡すことも可能になります。 -</p><p>例えば: -</p> -<pre class="eval"> Mozilla mozilla = Mozilla.getInstance(); - WindowCreator creator = new WindowCreator(); <span>// nsIWindowCreator を実装</span> - - nsIServiceManager serviceManager = mozilla.getServiceManager(); - - nsIWindowWatcher windowWatcher = (nsIWindowWatcher) serviceManager - .getServiceManagerByContractID(NS_WINDOWWATCHER_CONTRACTID, - nsIWindowWatcher.NS_IWINDOWWATCHER_IID); - windowWatcher.setWindowCreator(creator); -</pre> -<p>この例では、<code>nsIWindowCreator</code>インターフェースを実装した Java のクラスである<code>WindowCreator</code>が存在し、それを Mozilla に登録しようとしています。そのために、まず service manager を取得するのですが、それは Mozilla のwindow watcherのリファレンスにある方法によります。 -</p><p>別の例: (<a class="external" href="http://rayh.co.uk">rayh.co.uk</a>にあるもの) -</p> -<pre class="eval"> // linux 上ではこのコードが実行されるより前に gtk が初期化されている必要があることに注意 - Mozilla moz = Mozilla.getInstance(); - - // 次に XUL アプリケーションを実行するために、XPCOMのservice managerのインスタンスを取得する必要がある - nsIServiceManager serviceManager = moz.getServiceManager(); - - // 次に @mozilla.org/toolkit/app-startup;1 サービスを取得する必要がある - nsIAppStartup appStartup = (nsIAppStartup)serviceManager.getServiceByContractID("@mozilla.org/toolkit/app-startup;1", nsIAppStartup.NS_IAPPSTARTUP_IID); - - // 上のものへの nsIWindowWatcher インターフェースを取得する - nsIWindowCreator windowCreator = (nsIWindowCreator)appStartup.queryInterface(nsIWindowCreator.NS_IWINDOWCREATOR_IID); - - // window watcher サービスを取得する - nsIWindowWatcher windowWatcher = (nsIWindowWatcher)serviceManager.getServiceByContractID("@mozilla.org/embedcomp/window-watcher;1", nsIWindowWatcher.NS_IWINDOWWATCHER_IID); - - // window creator をsetする (from step 6) - windowWatcher.setWindowCreator(windowCreator); - - // Create the root XUL window を作成: - nsIDOMWindow win = windowWatcher.openWindow(null, "<a class=" external">chrome://your-app/content/window.xul</a>", "mywindow", "chrome,resizable,centerscreen", null); - - // これを active window にする - windowWatcher.setActiveWindow(win); - - // application を xpcom/xul に手渡し、ここでブロックする: - appStartup.run(); -</pre> -<p>これは動作する LocationProvider の例です : -</p> -<pre class="eval"> public class LocationProvider implements IAppFileLocProvider { -</pre> -<pre class="eval"> private final File libXULPath; - int counter = 0; - - public LocationProvider(File grePath) { - this.libXULPath = grePath; - } -</pre> -<pre class="eval"> public File getFile(String aProp, boolean[] aPersistent) { - File file = null; - if (aProp.equals("GreD") || aProp.equals("GreComsD")) { - file = libXULPath; - if (aProp.equals("GreComsD")) { - file = new File(file, "components"); - } - } - else if (aProp.equals("MozBinD") || - aProp.equals("CurProcD") || - aProp.equals("ComsD") || - aProp.equals("ProfD")) - { - file = libXULPath; - if (aProp.equals("ComsD")) { - file = new File(file, "components"); - } - } - return file; - } -</pre> -<pre class="eval"> public File[] getFiles(String aProp) { - File[] files = null; - if (aProp.equals("APluginsDL")) { - files = new File[1]; - files[0] = new File(libXULPath, "plugins"); - } - return files; - } -</pre> -<p><br> -</p> -<h4 id="XPCOM_の_UI_を別のスレッドから呼び出す"> XPCOM の UI を別のスレッドから呼び出す </h4> -<p>appStartup.run() はメインのイベントループを始動し、アプリケーションが終了するまでそこに留まります。これ以降の場所で XPCOM とcommunicateするためには、nsIProxyObjectManager を使用する必要があります。 -</p><p>上の例に引き続き新しいウインドウを作成するためには、このようにします : -</p> -<pre class="eval"> // まず、event queue service を取得します。これは、XPCOM の全てのイベントキューを処理するものです。 - nsIEventQueueService eventQueueServive = (nsIEventQueueService)serviceManager.getServiceByContractID("@mozilla.org/event-queue-service;1",nsIEventQueueService.NS_IEVENTQUEUESERVICE_IID); - - // 次に、ウインドウを開くために、UI スレッドを取得します。 - // nsIEventQueueService が所有するstatic変数がUIイベント用の特別なキューを所有しています。 - nsIEventQueue eventQueue = eventQueueServive.getSpecialEventQueue(nsIEventQueueService.UI_THREAD_EVENT_QUEUE); - - // 次に、proxy object manager 用の proxy を作成します。 - nsIProxyObjectManager proxy = (nsIProxyObjectManager)componentManager.createInstanceByContractID("@mozilla.org/xpcomproxy;1",null,nsIProxyObjectManager.NS_IPROXYOBJECTMANAGER_IID); - - // そして、proxy object manager を使って、さきほど作成した nsIWindowWatcher のインスタンスへの proxy を作成します。 - nsIWindowWatcher windowProxy = (nsIWindowWatcher)proxy.getProxyForObject(eventQueue,windowWatcher.NS_IWINDOWWATCHER_IID,windowWatcher,nsIProxyObjectManager.INVOKE_SYNC); - - // そうすれば、proxy を使ってメソッドを普通に呼び出すことができます。 - windowProxy.openWindow(null, chromeUri, name, "centerscreen", null); -</pre> -<p>さらに詳しい情報は、<a class="external" href="http://www.xulplanet.com/references/xpcomref/ifaces/nsIProxyObjectManager.html">XulPlanet's documentation of nsIProxyObjectManager</a>を参照してください。 -</p><p>これは、<a class="external" href="http://rayh.co.uk/blog/?p=14">Injecting Events onto XPCOM’s UI Thread</a>からとられたものです。 -</p> diff --git a/files/ja/mozilla/tech/xpcom/language_bindings/javaxpcom/examples/index.html b/files/ja/mozilla/tech/xpcom/language_bindings/javaxpcom/examples/index.html deleted file mode 100644 index 9c34d27c84..0000000000 --- a/files/ja/mozilla/tech/xpcom/language_bindings/javaxpcom/examples/index.html +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: Examples -slug: Mozilla/Tech/XPCOM/Language_Bindings/JavaXPCOM/Examples -tags: - - JavaXPCOM - - 'XPCOM:Language Bindings' -translation_of: Mozilla/Tech/XPCOM/Language_bindings/JavaXPCOM/Examples ---- -<p> -</p><p>いくつかの Java テストアプリケーションがソースツリーにチェックインされています。ここには、Java から Gecko の埋め込みや XPCOM の初期化をする方法の例があります。<a class="external" href="http://lxr.mozilla.org/mozilla/source/extensions/java/xpcom/tests">mozilla/extensions/java/xpcom/tests</a> -</p> -<div class="noinclude"> -</div> diff --git a/files/ja/mozilla/tech/xpcom/language_bindings/javaxpcom/index.html b/files/ja/mozilla/tech/xpcom/language_bindings/javaxpcom/index.html deleted file mode 100644 index c2707f8de0..0000000000 --- a/files/ja/mozilla/tech/xpcom/language_bindings/javaxpcom/index.html +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: JavaXPCOM -slug: Mozilla/Tech/XPCOM/Language_Bindings/JavaXPCOM -tags: - - JavaXPCOM - - 'XPCOM:Language Bindings' - - 要更新 -translation_of: Mozilla/Tech/XPCOM/Language_bindings/JavaXPCOM ---- -<p> </p> -<div> - <p><b>JavaXPCOM</b> は Java と <a href="ja/XPCOM">XPCOM</a> のコミュニケーションを可能にします。つまり、Java アプリケーションは、XPCOM オブジェクトにアクセスでき、XPCOM オブジェクトも XPCOM インターフェースを実装するすべての Java class にアクセスできます。 JavaXPCOM を使うことで、開発者は Java アプリケーションから XPCOM や埋め込み <a href="ja/Gecko">Gecko</a> にデータを伝送することができます。 JavaXPCOM は <a href="ja/XPConnect">XPConnect</a> (JavaScript-XPCOM ブリッジ) に非常によく似ていて <a href="ja/XPIDL">XPIDL</a> を使用します。</p> - <p>JavaXPCOM は <a href="ja/XULRunner">XULRunner</a> の一部として標準で構築されています。 最近のビルドまたは <a href="ja/XULRunner_1.8.0.4_Release_Notes">XULRunner 1.8.0.4</a> をダウンロードして試してみてください。</p> -</div> -<table class="topicpage-table"> - <tbody> - <tr> - <td> - <h4 id=".E3.83.89.E3.82.AD.E3.83.A5.E3.83.A1.E3.83.B3.E3.83.86.E3.83.BC.E3.82.B7.E3.83.A7.E3.83.B3" name=".E3.83.89.E3.82.AD.E3.83.A5.E3.83.A1.E3.83.B3.E3.83.86.E3.83.BC.E3.82.B7.E3.83.A7.E3.83.B3"><a>ドキュメンテーション</a></h4> - <dl> - <dt> - <a href="ja/JavaXPCOM/Development">JavaXPCOM Development</a></dt> - <dd> - <small>ソースの取得・構築方法、それから読み方・バグの報告の方法。</small></dd> - </dl> - <dl> - <dt> - <a href="ja/JavaXPCOM/Examples">サンプルコード</a></dt> - <dd> - <small>いくつかの Java テストアプリケーションがソースツリーにチェックインされており、Java から Gecko の埋め込みや XPCOM を初期化する方法の例があります。</small></dd> - </dl> - <dl> - <dt> - <a href="ja/JavaXPCOM/Embedding_Mozilla_in_a_Java_Application_using_JavaXPCOM">JavaXPCOM を使って Java アプリケーションへ Mozilla を組み込む</a></dt> - <dd> - <small><a href="ja/XULRunner">XULRunner</a> には JavaXPCOM が標準搭載されており、これは、Java のコードと XPCOM の相互利用を可能にするものです。この記事で示すとおり、Java での XPCOM オブジェクトの操作は C++ の場合とそれほど大きな差はありません。</small></dd> - </dl> - <p><span class="alllinks"><a>すべて見る...</a></span></p> - </td> - <td> - <h4 id=".E3.82.B3.E3.83.9F.E3.83.A5.E3.83.8B.E3.83.86.E3.82.A3" name=".E3.82.B3.E3.83.9F.E3.83.A5.E3.83.8B.E3.83.86.E3.82.A3">コミュニティ</h4> - <ul> - <li>Mozilla Java フォーラムを見る...</li> - </ul> - <ul> - <li><a href="https://lists.mozilla.org/listinfo/dev-tech-java"> メーリングリストとして</a></li> - - - <li><a href="http://groups.google.com/group/mozilla.dev.tech.java"> ニュースグループとして</a></li> - <li><a href="http://groups.google.com/group/mozilla.dev.tech.java/feeds"> フィードとして</a></li> -</ul> - <ul> - <li>Mozilla Embedding フォーラムを見る...</li> - </ul> - <ul> - <li><a href="https://lists.mozilla.org/listinfo/dev-embedding"> メーリングリストとして</a></li> - - - <li><a href="http://groups.google.com/group/mozilla.dev.embedding"> ニュースグループとして</a></li> - <li><a href="http://groups.google.com/group/mozilla.dev.embedding/feeds"> フィードとして</a></li> -</ul> - <ul> - <li><a class="link-mailto" href="mailto:jhpedemonte@gmail.com">Javier Pedemonte</a> JavaXPCOM プロジェクトを率いている開発者</li> - </ul> - <h4 id=".E9.96.A2.E9.80.A3.E9.A0.85.E7.9B.AE" name=".E9.96.A2.E9.80.A3.E9.A0.85.E7.9B.AE">関連項目</h4> - <dl> - <dd> - <a href="ja/XPCOM">XPCOM</a>, <a href="ja/Embedding_Mozilla">Embedding Mozilla</a></dd> - </dl> - </td> - </tr> - </tbody> -</table> diff --git a/files/ja/mozilla/tech/xpcom/language_bindings/javaxpcom/other_resources/index.html b/files/ja/mozilla/tech/xpcom/language_bindings/javaxpcom/other_resources/index.html deleted file mode 100644 index 14a9eb1ee0..0000000000 --- a/files/ja/mozilla/tech/xpcom/language_bindings/javaxpcom/other_resources/index.html +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: その他の情報源 -slug: Mozilla/Tech/XPCOM/Language_Bindings/JavaXPCOM/Other_Resources -tags: - - JavaXPCOM - - 'XPCOM:Language Bindings' -translation_of: Mozilla/Tech/XPCOM/Language_bindings/JavaXPCOM/Other_Resources ---- -<h2 id="Other_Resources" name="Other_Resources">その他の情報源</h2> -<ul> - <li><a href="/ja/docs/Embedding_Mozilla">Embedding Mozilla</a></li> - <li><a href="/ja/docs/XPConnect">XPConnect</a> - Javascript-XPCOM bridge</li> - <li><a href="/ja/docs/BlackConnect">BlackConnect</a> - Java-XPCOM bridge (no longer supported)</li> - <li><a href="http://www.mozilla.org/projects/blackwood/connect/RequirementsSpec.html#IDL">XPIDL to Java types</a> - from Blackconnect</li> -</ul> |