首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有java的jni4net c# in jni4net java.lang.ClassNotFoundException

带有java的jni4net c# in jni4net java.lang.ClassNotFoundException
EN

Stack Overflow用户
提问于 2017-09-12 07:43:06
回答 1查看 1.5K关注 0票数 1

我用java构建了一个非常小而简单的helloWorld程序(有接口,在类中有system.lang.out.println(“helloWorld”))。我用代理代包好了。现在,我试图将它附加到c# (通过meCalc示例),我得到了以下错误:

未处理的异常:无法为‘t 09120958加载java类。HelloWorld09120958来自net.sf.jni4net.jni.JNIEnv.CallObjectMethodPtr(IJvmProxy sun.misc.Launcher$AppClassLoader@c387f44 -> java.lang.ClassNotFoundException:’t 09120958.HelloWorld09120958 at net.sf.jni4net.jni.JNIEnv.ExceptionTest() at net.sf.jni4net.jni.JNIEnv.ExceptionTest obj,MethodId methodIdNative,Value[] args) at java.lang.ClassLoader.loadClass(String par0) at java.lang.ClassLoader.loadClass(String Par0)at java.lang.ClassLoader.loadClass,classLoader classLoader,( net.sf.jni4net.utils.Registry.RegisterType(Type类型的JNIEnv env),net.sf.jni4net.utils.Registry.RegisterAssembly(Assembly程序集的布尔bindJVM ( JNIEnv env),net.sf.jni4net.Bridge.RegisterAssembly(Assembly组装的布尔bindJVM) ( netdt09120958.Program.Main(String[] args) )

我的c#代码:

代码语言:javascript
复制
 static void Main(string[] args)
            {
                var bridgeSetup = new BridgeSetup();
                bridgeSetup.AddAllJarsClassPath(".");
                Bridge.CreateJVM(bridgeSetup);
                Bridge.RegisterAssembly(typeof(HelloWorld09120958).Assembly);

                IHelloWorld09120958 calc = new HelloWorld09120958();
                calc.SayHello();
                Console.ReadKey();
            }

为什么是这样?我做错了什么,怎么才能把它修好?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-13 03:36:17

发现java包可能不包含任何大写字母。原始JAR和j4n.jar必须与exe文件位于同一个文件夹中。此外,当将它们添加到项目中时,请确保在属性中将它们标记为“复制始终”--谢谢@Tetsuya Yamamoto

此外,我还找到了这个链接,它可能有助于http://jni4net.com/troubleshoot.html的故障排除。

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

https://stackoverflow.com/questions/46170693

复制
相关文章

相似问题

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