如何为 Z3 设置 Java 开发环境
How to setup a Java development environment for Z3
如何为 Z3 SMT 求解器设置 Java 开发环境?
注: 作者撰写并回答,见Can I answer my own question?.
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
将在 <mavenrepo>/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 上找到。请注意,文件夹结构与包名称不匹配,因此您可能希望在使用 IDE.
注册之前将文件复制到 com/microsoft/z3
编辑 - macOS
不幸的是,在 macOS 上设置库路径 (DYLD_LIBRARY_PATH
) 不起作用,有关详细信息和解决方案,请参见此处:https://github.com/Z3Prover/z3/issues/294
Z3-TurnKey 是一个不错的项目,它发布了一个 Maven 工件,其中包含在运行时链接的 OS X、Windows 和 Linux 的预构建本机库。
如何为 Z3 SMT 求解器设置 Java 开发环境?
注: 作者撰写并回答,见Can I answer my own question?.
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
将在 <mavenrepo>/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 上找到。请注意,文件夹结构与包名称不匹配,因此您可能希望在使用 IDE. 注册之前将文件复制到
com/microsoft/z3
编辑 - macOS
不幸的是,在 macOS 上设置库路径 (DYLD_LIBRARY_PATH
) 不起作用,有关详细信息和解决方案,请参见此处:https://github.com/Z3Prover/z3/issues/294
Z3-TurnKey 是一个不错的项目,它发布了一个 Maven 工件,其中包含在运行时链接的 OS X、Windows 和 Linux 的预构建本机库。