私は、プラグインとしてCライブラリを使用できるようにするJavaソフトウェアを実装しています。これらの将来の関数を呼び出すには、Javaでネイティブ関数を作成する必要があります。この関数から、まだ存在していないコードを呼び出すことができます。メソッドのシグネチャは静的ですが、メソッドとクラスの名前は変更される可能性があります。
ロードされたライブラリまたは使用可能な関数を確認する方法はありますか?私がそれがうまくいくことを望む方法は次のようになります:
私のJavaクラスには、関数があります。
public static native void thirdParty(String class, String method, int[] data, int[] params);
これは私のCライブラリの関数を呼び出します。
JNIEXPORT void JNICALL Java_com_ex_app_Native_thirdParty(JNIEnv *, jclass, jstring, jstring, jintArray, jintArray);
そこからクラスとメソッドの名前を取得し、存在する場合はそれらを呼び出し、存在しない場合は例外をスローすることができます。
私が探しているのは、ある種のJavaスタイルのリフレクションですが、Cであるか、そのC++で失敗していると思います。
どうすればこれを達成できますか?