[英]connect between java and swi prolog
我試圖從java運行swi prolog
我正在使用eclipse,我已經將jpl.jar插入到項目中(properties-> libraries-> add external jar),當我嘗試運行程序時(它是jpl的一個示例,所以它應該工作..)我是收到錯誤:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no jpl in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1758)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1045)
at jpl.JPL.loadNativeLibrary(JPL.java:100)
at jpl.fli.Prolog.<clinit>(Prolog.java:85)
at jpl.Query.open(Query.java:286)
at jpl.Util.textToTerm(Util.java:162)
at jpl.Query.<init>(Query.java:198)
at faf.Main.main(Main.java:10) <br>
我錯過了什么?
我今天在Debian上遇到了這個問題,我的解決方案類似於Felix Dobslaw的。 因為我在其他地方找不到它,我會發布今天我如何解決它。
我的SWI-Prolog和JPL是通過apt-get安裝的。 根據您的環境更改路徑文件夾。
將libswipl.so從/usr/lib
復制到usr/lib/swi-prolog/lib/amd64
( sudo cp <probably-user-lib>/libswipl.so <installation-folder-swi>/lib/<architeture>
)
將-Djava.library.path="/usr/lib/swi-prolog/lib/amd64"
為VM選項
(項目屬性 - >運行 - > VM選項)
根據您的平台,應該有一個jpl dll左右。 您應該使其可以在%PATH%中的某個位置訪問,或者使用-Djava.library.path=<path to jpl.dll>
java屬性指定其位置。
閱讀有關JPL安裝的更多信息
我有同樣的問題。 這對Ubuntu有幫助:
1)將jpl jar的本機庫位置指向您保存“libswipl.so”的文件夾(我通過項目的“Java Build Path”設置執行此操作)。 對我來說是:
/usr/lib/swipl-6.2.6/lib/x86_64-linux
2)將保存“libjava.so”的文件夾添加到LD_LIBRARY_PATH變量中(我在環境選項卡下的運行配置中執行此操作)。 對我來說是:
/ usr / lib中/ JVM / JAVA -6-的openjdk / JRE / LIB / AMD64
Eclipse Neon和自制軟件的解決方案:
brew update
brew install swi-prolog --with-jpl
在Eclipse Run / Debug-Configuration中設置為VM-Arg:
-Djava.library.path=/usr/local/Cellar/swi-prolog/7.4.2/libexec/lib/swipl-7.4.2/lib/x86_64-darwin16.6.0
實際路徑可能有所不同
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.