jniexception

cetgtptt  于 2021-06-26  发布在  Java
关注(0)|答案(1)|浏览(176)

我用一个简单的c#程序制作了一个dll文件,并试图从终端编译它,出现了以下错误

net.sf.jni4net.jni.JNIException: Can't initialize jni4net. (32bit vs 64bit JVM vs CLR ?)
CLR architecture: 64bit
JAVA_HOME: C:\Program Files (x86)\Java\jdk1.8.0_211\ ---> System.BadImageFormatException: An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)
   at net.sf.jni4net.jni.JNI.Dll.JNI_GetDefaultJavaVMInitArgs(JavaVMInitArgs* args)
   at net.sf.jni4net.jni.JNI.Init()
   --- End of inner exception stack trace ---
   at net.sf.jni4net.jni.JNI.Init()
   at net.sf.jni4net.jni.JNI.CreateJavaVM(JavaVM& jvm, JNIEnv& env, Boolean attachIfExists, String[] options)
   at net.sf.jni4net.Bridge.CreateJVM()
   at net.sf.jni4net.Bridge.CreateJVM(BridgeSetup setup)
   at net.sf.jni4net.proxygen.model.Repository.LoadClasspath()
   at net.sf.jni4net.proxygen.model.Repository.Register()
   at net.sf.jni4net.proxygen.Program.Work(String[] args)
   at net.sf.jni4net.proxygen.Program.Main(String[] args)

现在我使用的java是64位的,在microsoft.net下我有两个文件夹,分别是32位和64位的framework64和frameworkframework64。我不知道哪一个正在使用中,如果需要的话,如何切换到有需要的人。

sgtfey8w

sgtfey8w1#

我看到您尝试从x64jni4net初始化x86jvm。我在jvm路径中看到了这一点。所以你应该改变javahome环境变量。

相关问题