質問

既存の jar ファイルを OSGi バンドルに変換する方法を教えてください。

回答、解決策

ここでは、書き出したパッケージを制御しながら、OSGi バンドルで既存の jar ファイルを簡単に変換する方法について説明します。

例では、添付された junit-4.4.jar から OSGi バンドルを作成します。

注意:次の方法は、jar ファイルに他の外部の jar ファイルとの依存関係がないシナリオで作業した場合の方法です。

  1. jar のマニフェストファイルの作成を開始します。
    マニフェストバージョン:1.0 作成者:自分バンドルマニフェストバージョン:2 バンドル名:JUnit 4.4 バンドルの説明:OSGi バンドル junit 4.4 パッケージバンドルバージョン:4.4.0 バンドルクラスパス:.,junit-4.4.jar Bundle-SymbolicName: org.junit.framework Export-Package: junit.framework,junit.extensions,org.junit.runner,org.junit,junit.textui 

    • バンドルクラスパスヘッダーは、元の jar をそのまま埋め込むことを可能にするよう設定されています。値が、バンドルに埋め込む jar のファイル名と一致することを確認します。
    • Export-Package は、OSGi コンテナ内で実行されている他のバンドルで利用できるようにしたい JAR に含まれているパッケージのリストです。
  2. JAR ファイル
    http://mirrors.ibiblio.org/pub/mirrors/maven2/junit/junit/4.4/junit-4.4.jar から、事例の JAR ファイルを取得します
  3. 次のコマンドを実行して、バンドル JAR ファイルを作成します。
    jar cvfm junit-4.4-bundle.jar manifest.txt junit-4.4.jar 

    manifest.txt は、上記で生成されたマニフェストファイル名です。

    これで終了ですーさらに結果の JAR ファイル(このページは、例として添付されている)は、埋め込み unit-4.4.jar のクラスを使用して、上部の Export-Package 内にリストされているパッケージをエクスポートする OSGi バンドルです。

適用対象

すべての OSGi コンテナ

ダウンロード

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

リーガルノーティス   |   プライバシーポリシー