我用java构建了一个非常小而简单的helloWorld程序(有接口并且在类中有system.lang.out.println(“hello world”)))。我用代理生成包裹它。现在我正在尝试将其附加到 c#(以 meCalc 为例),我收到以下错误:
未处理的异常:net.sf.jni4net.jni.JNIException:无法从 classLoader sun.misc.Launcher$AppClassLoader@c387f44 加载 dt09120958.HelloWorld09120958 的 java 类 ---> java.lang.ClassNotFoundException: dt09120958.HelloWorld09120958 at net。 sf.jni4net.jni.JNIEnv.ExceptionTest() at net.sf.jni4net.jni.JNIEnv.CallObjectMethodPtr(IJvmProxy obj, MethodId methodIdNative, Value[] args) at java.lang.ClassLoader.loadClass(String par0) at net。 sf.jni4net.utils.Registry.LoadClass(String name, ClassLoader classLoader, JNIEnv env) --- 内部异常堆栈跟踪结束 --- 在 net.sf.jni4net.utils.Registry.LoadClass(String name, ClassLoader classLoader, JNIEnv env) 在 net.sf.jni4net.utils.Registry.RegisterClass(RegistryRecord record, ClassLoader classLoader, JNIEnv env) 在 net.sf.jni4net.utils.Registry。BindJvm(RegistryRecord 记录,ClassLoader classLoader,JNIEnv env)在 net.sf.jni4net.utils.Registry.BindJvm(RegistryRecord 记录,JNIEnv env)在 net.sf.jni4net.utils.Registry.RegisterType(类型类型,布尔绑定 JVM,JNIEnv env) 在 net.sf.jni4net.Bridge.RegisterAssembly(Assembly assembly) 在 netdt09120958.Program.Main(String[] args)在 netdt09120958.Program.Main(String[] args) 的 RegisterAssembly(Assembly 程序集)在 netdt09120958.Program.Main(String[] args) 的 RegisterAssembly(Assembly 程序集)
我的 C# 代码:
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();
}
为什么呢?我做错了什么,我该如何解决?