3

jniBridge.Calculator私は、 1 つの単純なメソッドを持つ単純な Java クラスを持っていAdd(int a, int b)ます。Eclipse を使用してプロジェクトをビルドした後、プロジェクトを JAR ファイルとしてエクスポートしました。

次に、JAR ファイルで proxygen を呼び出しました。これにより、C# と Java の両方のプロキシをそれぞれ含むclrというフォルダーと という別のフォルダーが作成されました。jvmProxygen はbuild.cmdおよび.xmlファイルも作成しました。

その後、build.cmd生成されたファイル.DLLを実行しました。.JAR

今、私はこれらをC#で使用したいので、.DLLおよび.JARファイルを.NETプロジェクトフォルダーにコピーし、ファイルへの参照を追加し、ファイルを出力フォルダーに.DLL設定して、ファイル。また、Jni4Net メイン ライブラリ ファイルへの参照を追加し、そのメイン JAR ファイル を同じディレクトリにコピーしました。ダンプに追加して、最初に使用した元の JAR ファイルも追加しました。.JARCopy Always.EXEjni4net.n-0.8.6.0.dlljni4net.j-0.8.6.0.jar

C# 内でProgram.cs次のことを行います。

BridgeSetup bs = new BridgeSetup();
bs.AddAllJarsClassPath(".");

Bridge.CreateJVM(bs);
Bridge.RegisterAssembly(typeof(jniBridge.Calculator).Assembly);

ただし、最後の呼び出しは次の例外で失敗します。

未処理の例外: net.sf.jni4net.jni.JNIException: classLoader sun.misc.Launcher$AppClassLoader@e39a3e から jnibridge.Calculator の Java クラスを読み込めません ---> java.lang.ClassNotFoundException: jnibridge.Calculator

助けてください!!

4

1 に答える 1