问题
In the tool I downloaded from: http://alloy.mit.edu/alloy/hola/
the only options of solvers that appear are SAT4J and PLingeling. Why do the other options not also appear? I am using Windows and executing the tool by double clicking the file hola-0.2.jar...
The same error occurs with the Alloy Tool downloaded from: http://alloy.mit.edu/alloy/download.html
However, when i run it in windows 7, solver options such as miniSAT, miniSAT with Unsat Core, ZChaff appear! The solver options available depend on the operational system?
回答1:
Solvers like minisat are not java based. Hence the Alloy Analyzer comes with a native version of those solvers for each commonly used operating system. If you open the .jar with an archiver, you will be able to see four folders : x86-windows, x86-mac, x86-linux and x86-freebsd each containing OS-specific executables related to those solvers.
In your question, you say having problems using those solvers on Windows but say however that everything works fine on Windows 7. Can I thus assume that by Windows, you mean the latest version of the Windows OS, that is Windows 10 ?
I'm unfamiliar with it, but it might be the case that those .dll present in the x86_windows folder are simply not working as expected on Windows 10.
回答2:
Which Java version (32 or 64 bits) are you using ?
The alloy download page includes a jar file with native libraries/solvers for x86_windows, i.e., libraries that work in Java 32 bits but not in Java 64 bits. Considering that Alloy uses JNI and these libraries to run the solvers, you must use a proper Java version to use the solvers.
The Alloy jar file includes 32-bit native libraries for Windows, Mac and FreeBSD, and both 32- and 64-bits libraries for Linux.
来源:https://stackoverflow.com/questions/32957546/why-do-solver-options-like-minisat-minisat-with-unsat-core-lingeling-glucose