【问题标题】:How to setup a Java development environment for Z3如何为 Z3 设置 Java 开发环境
【发布时间】:2020-02-25 21:57:52
【问题描述】:

如何为 Z3 SMT 求解器设置 Java 开发环境?

注意: 由作者撰写和回答,见Can I answer my own question?

【问题讨论】:

    标签: java ubuntu installation z3


    【解决方案1】:
    • Z3 是一个带有 Java 绑定的 C++ 应用程序。首先从 https://github.com/Z3Prover/z3/releases 下载本机发行版,在我们的例子中是 Ubuntu(类似的方法应该适用于 macOS),例如:z3-4.8.7-x64-ubuntu-16.04.zip

    • 将构建解压缩到 Z3_DIR 。为简化起见,请使用以下导出:

     export Z3_DIR=<some_path>/z3-4.8.7-x64-ubuntu-16.04
     export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$Z3_DIR/bin
    
    • 下载与您的 Z3 版本匹配的 Java 示例,编译并运行它:
    $ curl https://raw.githubusercontent.com/Z3Prover/z3/z3-4.8.7/examples/java/JavaExample.java > JavaExample.java
    $ javac -cp $Z3_DIR/bin/com.microsoft.z3.jar JavaExample.java
    $ java -cp $Z3_DIR/bin/com.microsoft.z3.jar:. JavaExample
    

    如果一切顺利,您应该会看到示例执行没有错误。

    • 要将 Z3 jar 与 Maven 一起使用,请将其安装到本地 maven 存储库中:
    $ mvn install:install-file \
       -Dfile=$Z3_DIR/bin/com.microsoft.z3.jar \
       -DgroupId=com.microsoft \
       -DartifactId=z3 \
       -Dversion=4.8.7 \
       -Dpackaging=jar \
       -DgeneratePom=true
    

    将在&lt;mavenrepo&gt;/repository/com/microsoft/z3/4.8.7/ 中创建一个名为z3-4.8.7.jar 的jar。它可以作为依赖项添加到 maven 项目中:

         <dependency>
             <groupId>com.microsoft</groupId>
             <artifactId>z3</artifactId>
             <version>4.8.7</version>
         </dependency>
    
    • 很高兴拥有 Z3 API Java 源代码,这些源代码可在 Github 上找到:https://github.com/Z3Prover/z3/tree/z3-4.8.7/src/api/java。请注意,文件夹结构与包名称不匹配,因此您可能需要将文件复制到 com/microsoft/z3,然后再将它们注册到 IDE。

    编辑 - macOS 不幸的是,在 macOS 上设置库路径 (DYLD_LIBRARY_PATH) 不起作用,有关一些详细信息和解决方案,请参见此处:https://github.com/Z3Prover/z3/issues/294

    【讨论】:

      【解决方案2】:

      Z3-TurnKey 是一个不错的项目,它发布了一个 Maven 工件,其中包含在运行时链接的 OS X、Windows 和 Linux 的预构建本机库。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-06-19
        • 1970-01-01
        • 2015-03-05
        • 2011-11-09
        • 2023-03-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多