OSGi 用のコマンド コンポーネントを作成し、Apache Felix Shell を使用しました。1 つのコマンドで、SWT UI を開始する新しいスレッドが開きます。
BND Config では、このコンポーネントをビルドして実行するために SWT バンドルが必要です。現在の問題は、すべての開発者が構成を変更し、OS の SWT バンドルを含める必要があることです。また、すべての OS に対して、他のパックされたバンドルが必要です。唯一の違いは、jar のマニフェスト内の行であり、他のバンドルを起動する必要があります。
現在実行中のシステムに依存するビルドまたは実行の依存関係を設定できる BND または OSGi にトリックはありますか?
「org.eclipse.swt.win32.win32.x86_64」ではなく「org.eclipse.swt.{OS}.{WS}.{ARCH}」のようなものですか? または、少なくとも構成で特定の OS を要求できますか? ユーザーが間違ったバンドルを使用した場合、ClassNotFound Exception の代わりに適切なエラーが表示されるようにするには?
別の質問 (http://stackoverflow.com/questions/2706222/create-cross-platform-java-swt-application/5784073#5784073) で説明されている解決策は、私にはうまくいきません。 BND/OSGi で実行できます。
何か案が?