我在Windows 7上使用Java 1.7.0并尝试加载位于C:/Program Files (x86)/Common Files/app_name/
的64位dll。我收到以下错误使用64位JDK加载64位dll 1.7.0
Exception in thread "main" java.lang.UnsatisfiedLinkError:
C:\Program Files (x86)\Common Files\app_name\app.dll: %1
is not a valid Win32 application
我复制的DLL到不同的目录(即C:\Temp
),并能加载DLL就好了。我在想这个错误是由于dll位于Program Files (x86)
的事实,而java正在试图将它加载为32位的dll。 JVM是否对Program Files
和Program Files (x86)
下的dll进行了某些假设?
可能是文件路径中的空格? – 2013-02-12 20:48:41
我不这么认为,它似乎找到了DLL,它只是试图加载它作为一个32位的DLL而不是一个64位的DLL。 – 2013-02-12 20:49:41
我刚才说过,因为我知道有时候语言会抱怨路径中的空间(很多linux的东西都是这样的),我认为这是公平的,它假设如果它在x86文件夹中是32位 – 2013-02-12 20:51:33