私はNoClassDefFoundError
実行時に取得していますが、"uses"
推移性が作成されたと思ったので、ディレクティブはこれを回避すると思いました(間違っている場合は修正してください)。これが私の設定です:
Bundle 1
Export-package A
Bundle 2
Export-package B, uses "A"
Import-package A
Bundle 3
Import-package B
ここで、バンドル3がBのクラスを呼び出し、次にAのクラスを呼び出すと例外が発生します。コンソールに基づいて、BundleClassLoader
バンドル3(つまり、それ自体)でクラスを検索しますが、バンドル1では検索されないことがわかります。BNDにバンドル3にAをインポートするように強制すると、すべてが正常に機能しますが、手間がかかりすぎます。何かが足りないような気がします。equinoxは、マニフェストの情報を使用してバンドルクラスパスを設定するべきではありませんか?または、最悪の場合、BNDは3の1への依存関係を検出し、3のマニフェストでパッケージAをインポートするべきではありませんか?
私のバンドルはすべてあり、制約違反active
はありませんuses