JPL/SWI Prolog not working

I'm trying to use the SWI-Prolog JPL library, but I'm having problems.

I'm trying to let my Eclipse project access JPL, but when I try to start the program, I get the following error:

Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: no jpl in java.library.path

I copied the jpl.jar into my project directory, and I set it on the build path. Additionally, I pass the following VM arguments:

-Djava.library.path="C:\Program Files\Prolog\bin"

(That's the directory where Prolog was installed).

What am I doing wrong?


EDIT: I don't seem to have the libpl.dll anywhere on my computer. Could this be causing my problem?


The jvm.dll of your running JDK/JRE must be available in your system PATH so that jpl.dll from java.library.path loads properly.

You have to take care to 32 bits / 64 bits consistency between your JPL installation and your running JVM - so do not try any mix.

Here is information from an old installation doc.

For such installation support, you should use the JPL mailing list.


You should set the java.library.path to the folder where the jpl.dll file is located. As far as I know it is the Prolog\bin folder.


A system-wide solution in a Mac environment (SWI-Prolog version 7.1.4 for x86_64-darwin13.1.0) would be to create the following symlink:

ln -s /usr/local/Cellar/swi-prolog/7.1.4/libexec/lib/swipl-7.1.4/lib/x86_64-darwin13.1.0/libjpl.jnilib /Library/Java/Extensions/libjpl.jnilib


  • Yomu and Heroku
  • cant connect to kafka from external machine
  • Unable to start neo4j server 2.1.2
  • Getting WSO2 IOT Server running as a Windows Service
  • Convert a 12 hour time format to 24 hour time format (keeping record of the day) in python
  • Packet modification with netfilter queue?
  • Getting zero results in search using elastic4s
  • RPMs for IDAS IoTAgents GE, from Fiware
  • PHP file_exists() anomaly
  • How dotnet build chooses the output name
  • JSR-330 support in Picocontainer : @Inject … @Named(\"xxx)
  • hide missing dates from x-axis ggplot2
  • Creating a DropDownList
  • Who propagate bugfixes across branches (corporate development)?
  • Memory error in python- how to use more memory
  • Web.config system.webserver errors
  • Differences in dis-assembled C code of GCC and Borland?
  • Checking free space on FTP server
  • Change Inet root folder for iis 7
  • Algorithm for a smudge tool?
  • Scrapy recursive link crawler
  • Installing Hadoop, Java Exception about illegal characters at index 7?
  • Pass value from viewmodel to script in zk
  • Illegal mix of collations for operation for date/time comparison
  • MySQL WHERE-condition in procedure ignored
  • Updated Ionic CLI but shows previous version (Windows)
  • Convert array of 8 bytes to signed long in C++
  • How to make Safari send if-modified-since header?
  • jqPlot EnhancedLegendRenderer plugin does not toggle series for Pie charts
  • How do I rollback to a specific git commit
  • Is there a mandatory requirement to switch app.yaml?
  • Error creating VM instance in Google Compute Engine
  • How to set the response of a form post action to a iframe source?
  • -fvisibility=hidden not passed by compiler for Debug builds
  • Change div Background jquery
  • Qt: Run a script BEFORE make
  • Checking variable from a different class in C#
  • Busy indicator not showing up in wpf window [duplicate]
  • reshape alternating columns in less time and using less memory
  • Net Present Value in Excel for Grouped Recurring CF