JCom(Java-COMブリッジ)


Japanese | English

はじめに

あなたはマイクロソフトが好きですか?
答えがどうであれ、大半の人々がWindowsやOffice製品を 使っているのは事実です。 これらはCOM(component object model)アーキテクチャに 基づいて作られています。もしJavaからCOMが使えれば、 マイクロソフトの大半の製品がJavaから使えるようになるでしょう。 VBAで扱うように・・・。
4コマまんが

JComとは

JComとはJavaからWindowsのCOMを利用することのできる Java-COMブリッジです。ExcelやWordなど、既存のCOMの 機能をJavaから利用することができます。

Windowsにはマイクロソフト社が作った大量のCOMが用意 されています。これらはVisual-BASICやVB-Scriptなどから 利用でき、マイクロソフト社が目指す、新しいプログラ ミングスタイルの鍵となっています。

一方、Javaはサーバアプリケーション、アプレット、 組み込みなどの分野を中心に広がっています。 しかし、クライアントアプリケーションの分野では、 まだまだ遅れています。Javaで作られたアプリケーション はほとんどありません。

ならば、すでにあるアプリケーションを利用しない手は ありません。COMはそのアプリケーションを外部から 利用するための共通のインターフェースです。COMを Javaから利用できるようにすれば、それに対応した アプリケーションはすべてJavaから利用できるように なります。

例えば、サーバアプリケーションで、DBの情報を集計し、 用意されたExcelのフォーマットにまとめ、印刷する、 ということができるでしょう。あるいは、クライアント のアプリケーションでも、Excelを帳票出力のための ミドルウェアとして使うこともできるでしょう。 ひょっとしたら、認証済みアプレットでも使えるかも しれません。JavaからOffice製品、およびWindows自身 の機能を利用できるようになります。

一部の熱狂的なJava信者には、この方法は邪道と思わ れるかもしれません。本来なら、Java-Beansを作り、 それを利用すべきですから。しかし、Beansを作り、 今のMS-Officeのレベルまで達するのには、いくらかの 歳月が必要です。現実問題として、ユーザの多くは、 Windowsを使っており、MS-Officeを使っているのです。 私が懸念しているのは、100%PureJavaにこだわるあまり、 Javaの採用が断念されることです。これらに対抗するの ではなく、それを包み込む形でJavaの利用範囲を広げ たいのです。これがこのJComの目的です。

サンプル

こちら

ダウンロード

jcom223.zip(464,634byte)
ライブラリ(jcom.jar+jcom.dll)、ソース、ドキュメント、サンプル付きです。


インストール方法、技術情報

guide.html


ライセンス

GNU LGPLとします。
http://www.gnu.org/copyleft/lesser.html原文
http://www.vector.co.jp/soft/data/prog/se086178.html邦訳(参考)


FAQ(よくある質問)

faq.htm
VBからJComへの翻訳のしかた

サポート

ホームページ: http://www.hcn.zaq.ne.jp/no-ji/jcom/index.htm
メール:mailto:no-ji@hcn.zaq.ne.jp

日経ソフトウェア2001年10月号に記事が載りました。

特集2 究極のExcel活用テクニック 第3部 JavaからでもExcelが使える!

ご利用していただいた(または、ご利用予定の)ソフト

Xi (XML埋め込み言語)
http://www.baykit.org/
XML MAGAZINE 02号に記事が載っています。162ページに、JComを紹介して頂きました。 ありがとうございます。

Pnuts (Javaによるスクリプト言語)
http://javacenter.sun.co.jp/pnuts/
JAVA PRESS Vol.9 等に記事があります。

注意!

英語版のページを泣きながら作りました。(T_T)
もともと私は英語が苦手なので、おかしい箇所が絶対にあります。

その他の似たソフトウェア

  • JACOB
  • jacoZoom
  • Bridge2Java
  • BeanXporter
  • Weblogic COM
  • J-Integra
  • Java2COM

    変更履歴

    2002/05/09
  • FAQ、VBからJComへの翻訳のしかた、を追加


  • 2001/10/08 Ver2.23
  • IDispatchをIUnknownと間違えて判断されていたバグ、および、VT_NULLをVT_EMPTYにしていたバグを修正。 ExcelのCopyメソッド実装時に発生。

    2001/08/29
  • FAQを追加

    2001/04/27
  • その他のパッケージを追加↑

    2001/04/25
  • 技術情報を追加。(guide.html)

    2001/04/05 Ver2.22
  • ExcelFontをサポート
  • VBのCOMのサンプルを追加(復活) demo/vbcom/

    2000/11/27 Ver2.21
  • IPersistを追加。これをサポートしているCOMのProgID/CLSIDが取得可能に。
  • IUnknown#queryInterface()のJava側クラスの引数をStringからClassにした。
  • IUnknown#queryInterface()で、サポートしていないインターフェースは確実にnullを返すようにした。

    2000/10/16 Ver2.20
  • サポートしている型を増やした。(guide.html参照)
  • 引数を間違えたとき、エラーとして検出するようにした。
  • 引数の並びを逆にしなければならなかった不具合を修正。
  • 参照渡しのときに値が反映されない不具合を修正。
  • String[]の変換が失敗していた不具合を修正。
  • VBで作られたCOMを呼ぶサンプルを追加。

    2000/09/04
  • 想定事例3:ExcelからXMLを作成
  • サンプルの英語化
  • Cautionを校正。Takahiroさんありがとうございます。感謝感激です。
    2000/08/29
  • 呼び出し方法をVC++のCOleDispatchDriver::InvokeHelperV()に合わせる。
  • 対応するVARIANT型を追加。VT_UI1,VT_BYREF等
  • 開発中のITypeInfo,ITypeLib,Comを安定版に昇格。
  • インストール方法を提示
  • 英語用ページを開設
    2000/08/06
  • 想定事例1。Excelによる見積書作成のサンプルを作成。→jcom201.lzh
  • #01 ExcelWorkbooks.Open()メソッドの戻り値の間違いを修正。→同上
  • ライセンス形態について悩む・・・(@_@)?


    戻る