我有一个简单的 Java 类,名为jniBridge.Calculator
有一种简单的方法Add(int a, int b)
。使用 eclipse 构建项目后,我将项目导出为 JAR 文件。
然后我在 JAR 文件上调用 proxygen,这会生成一个名为的文件夹clr
和另一个名为jvm
分别包含 C# 和 Java 代理。 Proxygen 还创建了一个build.cmd
and an .xml
文件也是如此。
之后我跑了build.cmd
它产生了一个.DLL
and .JAR
file.
现在我想在 C# 中使用这些或其他内容,因此我将 .DLL 和 .JAR 文件复制到 .NET 项目文件夹中,并添加了对.DLL
文件并设置.JAR
文件至Copy Always
到输出文件夹,以便它与.EXE
文件。我还添加了对 Jni4Net 主库文件的引用jni4net.n-0.8.6.0.dll
并复制其主 JAR 文件,jni4net.j-0.8.6.0.jar
,到同一目录。添加到转储中,我还添加了我开始使用的原始 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
请任何帮助!
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)