簡體   English   中英

連接java和swi prolog

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM