Java クラスをロードしようとする C++ コードを呼び出しています。
JNIEnv *jenv = ...
jclass cls = jenv->FindClass("org/some/bundle/SomeClass");
さて、問題は、このクラスが OSGi バンドルに存在し、上記のコードが私のクラスを見つけられないことです。
この問題は、単体テスト (Tycho-surefire ヘッドレス テスト) を実行する場合にのみ発生します。OSGi フレームワークに強制的に JNI からクラスを検索させる簡単な方法はありますか? Java側では、次のようなDynamic-ImportPackage
ことが問題を解決できたのではないかと思います。テスト フレームワークで動作させるためだけにサード パーティの C++ ライブラリを変更したくないので、可能であれば、Java テストのセットアップ / 構成側でのソリューションを好みます。