【问题标题】:Compiling error Java "package jpl does not exist" on Ubuntu在 Ubuntu 上编译错误 Java“包 jpl 不存在”
【发布时间】:2018-04-24 21:33:51
【问题描述】:

我使用 $ sudo apt-get install swi-prolog$ sudo apt-get install swi-prolog-java 安装了 swi-prolog 但是我不能在 netbeans 上编译任何东西,因为它给了我这个:

正如您在屏幕截图中看到的那样,我什至尝试将 jpl.jar 导入到项目的库中,但似乎没有任何效果。

关于这个有一些类似的问题,但所有的答案总是与 Windows 有关,我想为 linux 用户获得一些关于这个包的帮助。

【问题讨论】:

  • 该包的 Java 部分在 /usr/share/java 中可用;例如/usr/share/java/jpl.jar(看起来原生库位于/usr/lib/swi-prolog/lib),希望对您有所帮助。
  • 感谢您的回答,但正如我在问题中所说,我已经将 jpl.jar 添加到项目中,文件就在它们应该在的地方。

标签: java ubuntu packages swi-prolog jpl


【解决方案1】:

@Tamara 我查看了 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

【讨论】:

  • 非常感谢!这正是我所需要的,它现在工作正常。
猜你喜欢
  • 1970-01-01
  • 2020-05-23
  • 2023-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-07
  • 2012-02-29
  • 2015-05-07
相关资源
最近更新 更多