当前位置: 首页 > 知识库问答 >
问题:

jpl库不能用于java maven项目

琴英华
2023-03-14

我在我的项目中使用jpl库时遇到了一个问题。

奇怪的是,在一个老项目上,它是一个普通的Java应用程序,通过遵循这个解决方案jpl/SWI Prolog配置失败,它可以很好地与jpl库工作。该解决方案提到,我必须配置环境变量,以便使库与Java对话。

另一方面,我的新项目是一个maven项目。首先,我包含了Maven的以下依赖关系。

    <dependency>
        <groupId>jpl</groupId>
        <artifactId>jpl</artifactId>
        <version>7.4.0</version>
        <type>jar</type>
    </dependency>

但我得到了以下例外情况:

    public PrologReaderCollection RunGorgias(List<Context> contexts) { 

    JPL.init();

    String filename = prologFilePath;

    filename = filename.replace('\\', '/');
    String t1 = "consult('" + filename + "')";
    PrologReaderCollection output = new PrologReaderCollection();
    Integer count =1;

    for(Context cont : contexts) {
        Query q1 = new Query(t1);
        //Query q1 = new Query("consult",new Term[] {new Atom(t1)});
        if (q1.hasNext()) {
            String Request = "prove([" + cont.getName().toLowerCase() + "(" + cont.getParameters() + ")],Expl).";
            q1 = new Query(Request);
            while (q1.hasNext()) {
                    Map<String, Term> map = q1.nextSolution();
                    String expl = map.get("Expl").toString();
                    PrologReader pr = new PrologReader("Solution " + count + " for " + cont.getName().toLowerCase() + ":\n"  + expl + "\n\n",cont.getSet(),cont.getName().toLowerCase());
                    output.add(pr);
                    count += 1;

                    if(count > 3) {
                        break;
                    }
            }
        }
        count = 1;
    }

    return output;
}
    <dependency>
        <groupId>jpl</groupId>
        <artifactId>jpl</artifactId>
        <version>7.4.0</version>
        <scope>system</scope>
        <systemPath>${basedir}/lib/jpl.jar</systemPath>
    </dependency> 

有什么我能做的吗?

共有1个答案

乐正嘉瑞
2023-03-14

我用maven引用了7.0.1版本的jpl而不是7.4.0来解决我的问题,并且成功了!显然我需要一个旧版本的图书馆。

<dependency>
     <groupId>jpl</groupId>
     <artifactId>jpl</artifactId>
     <version>7.0.1</version>  
</dependency>
 类似资料:
  • 问题内容: 是否有Maven的“阶段”或“目标”来简单地执行Java类的主要方法?我有一个项目,希望通过简单地执行诸如“ mvn run”之类的操作来进行手动测试。 问题答案: 请参阅exec maven插件。你可以使用以下命令运行Java类: 调用就像插件配置在中一样简单。Mojohaus上的插件站点上有一个更详细的示例。

  • 问题内容: 我想将android库项目安装到本地Maven存储库。这是 build.gradle : 当我跑步时: 它卡在这里: 因此,我注意到的第一件事是,由于某种奇怪的原因,它正在尝试将其作为APK部署在设备上。 我是在做错什么,还是只是android-library插件与maven插件不兼容? 问题答案: 编辑: 请参阅github页面(https://github.com/dcendent

  • 今天早上我试图对我现有的项目进行一些更改,但我无法生成直到昨天才开始工作的构建。 我得到一个如下错误, 依赖项的AAR元数据(meta-inf/com/android/build/gradle/aar-metadata.properties)中指定的minCompileSdk(30)大于此模块的compileSdkVersion(android-29)。

  • 我的项目无法使用以下库进行编译: 我的分级代码: 错误: **错误:任务“:app:PredexDebug”执行失败。 com.android.ide.common.Process.processException:org.gradle.Process.internal.execException:进程“command”/usr/lib/jvm/java-7-openjdk-amd64/bin/j

  • 我在我的项目分级文件中收到了这样的警告: 警告:(16,5)“生成类型”不能应用于“(groovy.lang.closure )” 我的buildTypes部分是: 我目前使用的是Android Studio 1.1.0、CompilesDKVersion22、BuildToolsVersion22.0.0和TargetSDKVersion22。我试着退让到21岁,但还是收到了警告。 是什么导致了

  • Python:2.6.6 Kafka-蟒蛇:1.4.3 从Kafka.Consumer进口KafkaConsumer 文件“/usr/lib/python2.6/site-packages/kafka/consumer/init.py”,第5行 从kafka.consumer.group导入KafkaConsumer 文件“/usr/lib/python2.6/site-packages/kafk