首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JNI4Net C# To Java

JNI4Net C# To Java
EN

Stack Overflow用户
提问于 2013-11-21 01:59:53
回答 1查看 2.6K关注 0票数 3

我有一个名为jniBridge.Calculator的简单Java类,它有一个简单的方法Add(int a, int b)。在使用eclipse构建项目之后,我将项目导出为JAR文件。

然后我在JAR文件上调用proxygen,这产生了一个名为clr的文件夹和另一个名为jvm的文件夹,该文件夹分别包含C#和Java。Proxygen还创建了一个build.cmd和一个.xml文件。

在此之后,我运行了build.cmd,它生成了一个.DLL.JAR文件。

现在,我想在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中,我执行以下操作:

代码语言:javascript
复制
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

请帮忙!!

EN

回答 1

Stack Overflow用户

发布于 2016-01-18 23:25:14

我遇到了这个问题,并修正了它在我的C#代码中以小写形式设置包名(以及对您的工具中的名称空间的引用)。在您的示例中,您可以尝试确认包名是(确切地) jnibridge (不是JniBridge或其他任何东西)。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20111051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档