私はネイティブ実行可能ファイルのラッパーとしてサービスを実装するOSGiバンドルに取り組んでいます。つまり、サービスはProcessBuilder
で実行可能ファイルを実行し、いくつかのデータをフィードし、結果を取得します。私の質問は、このバンドルをパッケージ化する最良の方法です。ネイティブの実行可能ファイルには、ツールを実行するためにディスク上にすべて存在しなければならない多数の依存データファイルが含まれています。私は、OSGiのネイティブDLLを扱う際の参考文献をたくさん見つけましたが、クラスパスで検索できるのではなく、ディスク上に存在しなければならないバンドルに関連するファイルを扱っていません。OSGiバンドルに追加のリソースを含める
実行可能ファイルと依存ファイルをバンドルアーカイブに直接含めることができ、バンドルが開始されるときにプログラムによってディレクトリに抽出されると考えていました。私が考えることのできるもう1つのオプションは、実行可能ファイルをどこかに置いて、それを指し示すシステムプロパティを設定することですが、私は設定を最小限に抑えたいと思っています。
特定のOSGi実装に固有の解決策はいいですが、そうでない場合はEquinoxを使用しています。
ありがとうございます!
OSGiサービスプラットフォームコア仕様リリース4バージョン4.3では、['BundleContext.getDataFile(String)'](https://osgi.org/javadoc/r4v43/core/org/osgi/framework/BundleContext.html#getDataFile% 28java.lang.String%29)、これは適切かもしれません。 –