【问题标题】:Jni4net with Java 11带有 Java 11 的 Jni4net
【发布时间】:2019-01-14 15:49:29
【问题描述】:

我正在使用 jni4net 将 .net dll 桥接到 java。它在 Java8 环境中运行良好。不幸的是,使用 java 8 我收到以下错误:

我试过用java-11编译生成的jvm,但还是同样的问题。

Can't bind bridge:Can't initialize proxy java.lang.System
Can't bind bridge:net.sf.jni4net.jni.JNIException: Can't initialize proxy 
java.lang.System ---> System.Reflection.TargetInvocationException: Ein 
Aufrufziel hat einen Ausnahmefehler verursacht. ---> java.lang.LinkageError: 
runFinalizersOnExit
bei net.sf.jni4net.jni.JNIEnv.ExceptionTest()
bei net.sf.jni4net.jni.JNIEnv.GetStaticMethodID(Class clazz, String name, 
String sig)
bei java.lang.System.InitJNI(JNIEnv __env, Class __class)
--- Ende der internen Ausnahmestapelüberwachung ---
bei System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] 
arguments, Signature sig, Boolean constructor)
bei System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, 
Object[] parameters, Object[] arguments)
bei System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags 
invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
bei System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
bei net.sf.jni4net.utils.Registry.RegisterStaticAndMethods(RegistryRecord 
record, JNIEnv env)
--- Ende der internen Ausnahmestapelüberwachung ---
bei net.sf.jni4net.utils.Registry.RegisterStaticAndMethods(RegistryRecord 
record, JNIEnv env)
bei net.sf.jni4net.utils.Registry.BindJvm(RegistryRecord record, ClassLoader 
classLoader, JNIEnv env)
bei net.sf.jni4net.utils.Registry.BindJvm(RegistryRecord record, JNIEnv env)
bei net.sf.jni4net.utils.Registry.RegisterType(Type type, Boolean bindJVM, 
JNIEnv env)
bei net.sf.jni4net.utils.Registry.RegisterAssembly(Assembly assembly, 
Boolean bindJVM)
bei net.sf.jni4net.Bridge.RegisterAssembly(Assembly assembly)
bei net.sf.jni4net.Bridge.BindCore(JNIEnv env, BridgeSetup newSetup)
bei net.sf.jni4net.Bridge.initDotNetImpl(IntPtr envi, IntPtr clazz)
Can't initialize jni4net BridgeC 

【问题讨论】:

  • 我也有同样的问题。你有没有让它工作?

标签: jni4net


【解决方案1】:

我已经设法用 java 11 编译和执行了。

尝试在您的项目中下载 JNI4NET 库。

【讨论】:

    【解决方案2】:

    作为临时解决方案,您可以使用 ProcessBuilder 并在其环境中定义带有 java 8 路径的 JAVA_HOME 变量。

    【讨论】:

      猜你喜欢
      • 2018-02-20
      • 1970-01-01
      • 2019-04-08
      • 2020-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-27
      • 1970-01-01
      相关资源
      最近更新 更多