我正在尝试从java运行swi prolog
我正在使用eclipse,我已经将jpl.jar插入到项目中(properties-> libraries->添加外部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>
我错过了什么?
答案 0 :(得分:2)
我今天在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选项
(项目属性 - &gt;运行 - &gt; VM选项)
答案 1 :(得分:1)
根据您的平台,应该有一个jpl dll左右。您应该使其在%PATH%中的某个位置可访问,或者使用-Djava.library.path=<path to jpl.dll>
java属性指定其位置。
详细了解JPL installation
答案 2 :(得分:1)
我遇到了同样的问题。这对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
答案 3 :(得分:0)
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
实际路径可能有所不同。