java.lang.UnsatifiedLinkError:C:\…\xxx.dll:无法在AMD 64位平台上加载此.dll(机器代码=0xbd)
我想加载DLL库来使用它,但我对这条消息有点问题 java.lang.UnsatifiedLink错误:C:\xx\xx.dll:无法在AMD 64位平台上加载此.dll机器代码=0xbd 这是我用来加载DLL库的代码java.lang.UnsatifiedLinkError:C:\…\xxx.dll:无法在AMD 64位平台上加载此.dll(机器代码=0xbd),java,dll,java-8,java-native-interface,unsatisfiedlinkerror,Java,Dll,Java 8,Java Native Interface,Unsatisfiedlinkerror,我想加载DLL库来使用它,但我对这条消息有点问题 java.lang.UnsatifiedLink错误:C:\xx\xx.dll:无法在AMD 64位平台上加载此.dll机器代码=0xbd 这是我用来加载DLL库的代码 String arch = System.getProperty(ARCH_OS_CONSTANT); if (arch.equals("32")) { System.load("C:\\..\\xx.dll
String arch = System.getProperty(ARCH_OS_CONSTANT);
if (arch.equals("32")) {
System.load("C:\\..\\xx.dll");
} else if (arch.equals("64")) {
System.load("C:\\xx\\xx.dll");
}
还有同样的问题,我希望我已经找到了一个解决方案,多亏了我猜ARCH_OS_常量的值是OS.ARCH——标准属性名 如果是这样,那么您的代码将假定英特尔/AMD 32位的os.arch值为32。那是不对的。根据,该值实际上将是x86,对于Intel/AMD 64位,它将是AMD-64或x86-64
还有一个名为sun.arch.data.model的属性,其值可以是32或64。不幸的是,它不是javadoc中列出的标准属性之一,一些JVM不支持它。我猜您的Java运行时是错误的。也许您尝试使用32位Java运行时加载它,但它需要64位或其他方式。如果在这两种情况下使用相同的路径,那么if/else有什么意义?只是一个fasle代码副本,64位操作系统版本的else-if条件您应该编辑问题并将实际运行的代码放入其中。更新完成…错误消息显示C:\VIMS\dll\x86\UFScanner.dll,因此显然您没有尝试加载正确的dll。拱门的价值是什么?