Ошибка компиляции Java "пакет jpl не существует" в Ubuntu

Я установил swi-пролог с помощью $ sudo apt-get install swi-prolog а также $ sudo apt-get install swi-prolog-javaОднако я не могу ничего скомпилировать на NetBeans, потому что это дает мне это:

введите описание изображения здесь

Как вы можете видеть на скриншоте, я даже попытался импортировать jpl.jar в библиотеки проекта, но, похоже, ничего не работает.

Есть несколько похожих вопросов по этому поводу, но все ответы всегда связаны с Windows, я хотел бы получить некоторую помощь относительно этого пакета для пользователей Linux.

1 ответ

Решение

@ Тамара Я заглянул внутрь jpl.jar и думаю, что вы должны использовать пакет org.jpl7 вместо просто jpl.

Вот кусок кода, который работал для меня:

import org.jpl7.JPL;
import org.jpl7.Query;
import org.jpl7.Term;

public class PrologApp {
    public static void main(String[] args) {
        Query.hasSolution("use_module(library(jpl))"); // only because we call e.g. jpl_pl_syntax/1 below
        Term swi = Query.oneSolution("current_prolog_flag(version_data,Swi)").get("Swi");
        System.out.println("swipl.version = " + swi.arg(1) + "." + swi.arg(2) + "." + swi.arg(3));
        System.out.println("swipl.syntax = " + Query.oneSolution("jpl_pl_syntax(Syntax)").get("Syntax"));
        System.out.println("swipl.home = " + Query.oneSolution("current_prolog_flag(home,Home)").get("Home").name());
        System.out.println("jpl.jar = " + JPL.version_string());
        System.out.println("jpl.dll = " + org.jpl7.fli.Prolog.get_c_lib_version());
        System.out.println("jpl.pl = " + Query.oneSolution("jpl_pl_lib_version(V)").get("V").name());
    }
}

И вывод:

swipl.version = 7.2.3
swipl.syntax = modern
swipl.home = /usr/lib/swi-prolog
jpl.jar = 7.0.1-alpha
jpl.dll = 7.0.1-alpha
jpl.pl = 7.0.1-alpha

Посмотрите здесь для получения дополнительных примеров https://github.com/SWI-Prolog/packages-jpl/tree/master/examples/java

Другие вопросы по тегам