2015-07-19 144 views
1

我已下載swi-prolog 7.2.2。如何在Eclipse中使用JPL(swi-prolog的java prolog接口)?

我將jpl.dll文件(在swipl/bin下)複製到system32。

我在Eclipse中創建了一個新項目,並將jpl.jar放在路徑中(就像任何其他jar文件一樣)。

然後,當我嘗試推出此代碼:

package main_package; 

import org.jpl7.Query; 

public class Main { 

    public static void main(String[] args) { 

     String s = "consult('lib\rules.pl')"; 
     Query q = new Query(s); //the exception is thrown here 
     System.out.println(q.hasSolution()); 

    } 

} 

我獲得:

異常線程 「main」 java.lang.UnsatisfiedLinkError中:C:\ WINDOWS \ SYSTEM32 \ JPL。 DLL:不能AMD 64位平臺

我在線閱讀,也許我應該在Java虛擬機改變他的32位版本的.dll文件加載IA 32位。我嘗試了Window-> Preferences-> Java-> Installed JRE並將vm更改爲程序x86文件夾下的那個,但它沒有幫助。

任何想法?

回答

0

雖然目錄名稱

C:\Windows\System32 

使我們相信它包含DLL和程序的32位版本,它沒有。實際上,在64位Windows系統中,它包含64位版本。由於兼容性原因,目錄名稱未更改。

如果一個32位程序在64位Windows系統上啓動,操作系統映射目錄

C:\Windows\SysWOW64 

System32目錄。所以你必須將你的32位DLL放入SysWOW64目錄。

摘要:

  1. 目錄System32包含文件的64位版本。
  2. 目錄SysWOW64包含32位版本的文件。

旁註:

「哇」 的目錄名稱SysWOW64的意思是 「Windows在Windows」 的一部分。

鏈接:

Wikipedia article about WOW64