1

これは本当に簡単なはずです。HelpGUIは本当にシンプルなライブラリです:HelpGUI

OSGIフレームワークをまったく使用しないテストアプリケーションでは、この小さなライブラリに含まれているデモを問題なくロードできます。OSGIバンドルでこれを実行しようとすると、InputStreamを開くことができません。バンドルにリソースを正しく含めていないためであるに違いありませんが、その方法はわかりません。URLオブジェクトを作成し、ファイルへの正しいパスを取得できます。バンドル内のsrcフォルダーと同じレベルに/docs/ help /フォルダーがありますが、次のように呼び出すことはできません。

MainFrame mainFrame = new MainFrame("/docs/help/", "plastic");

そしてそれは機能しますか?なぜOSGIはこれをそれほど難しくしているのですか?誰かがライブラリをダウンロードして、OSGIバンドルのヘルプウィンドウをポップアップするデモを入手してみることができますか?

4

1 に答える 1

3

私はそれを試しましたが、問題は発生しませんでした。OSGiバージョンと非OSGiバージョンの両方でgitリポジトリを作成しましたが、どちらも正常に動作します。

https://github.com/flyaruu/demo-helpgui

どちらにもEclipse起動ファイルがあり、実行メニューから実行できます。

私がしなければならなかった唯一のトリッキーなことは、このスイッチを追加することでした:--launcher.secondThreadしかし、それはMacOSでのみEclipse SWT / Swingの問題であり、どのプラットフォームを使用しているかわかりません。

また、トリッキーかもしれませんが、Eclipseはjavax。*パッケージに依存関係を追加するように強制しません。そうしないと、Eclipse自体がロードしても、スタンドアロンのOSGiフレームワークはバンドルをロードしません。

PDEエクスポート([エクスポート]-> [バンドルとフラグメント])を使用してバンドルをエクスポートできます。また、gitリポジトリに(helpgui-osgi_1.0.0.201207310536.jar)含めました。含まれているバンドルは、たとえば、Felixの「bundle」フォルダにドロップするだけです。

これ以上簡単にすることはできません;-)

于 2012-07-31T03:48:06.217 に答える