我在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