如何为Z3 SMT求解器设置Java开发环境?
注意:本文由作者撰写和回答,详见我可以回答自己的问题吗?。
注意:本文由作者撰写和回答,详见我可以回答自己的问题吗?。
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
$ 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
$ 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
将名为z3-4.8.7.jar
的jar包创建在<mavenrepo>/repository/com/microsoft/z3/4.8.7/
中。它可以作为依赖项添加到Maven项目中:
<dependency>
<groupId>com.microsoft</groupId>
<artifactId>z3</artifactId>
<version>4.8.7</version>
</dependency>
com/microsoft/z3
。编辑 - macOS
不幸的是,在macOS上设置库路径(DYLD_LIBRARY_PATH
)不起作用,有关详细信息和解决方案,请参见此处:https://github.com/Z3Prover/z3/issues/294