I programmed an logic gate simulator and netlist parser for verilog.v
files.
Now I´d like to do some equivalents checks with a SAT module.
Currently I use Sat4J
but I´d like to use minisat2
for the checking. I installed minisat and can run it from console by typing:
minisat_static cnf.file
My Java Code for starting/exec is, for simple instructions like ls, ps, less ... it works perfectly well but if I use minisat_static <path-to-file>
it doesnt
printLinuxCommand("minisat_static bin/resources/cnf");
}
static void printLinuxCommand(String command) throws Exception {
System.out.println("Linux command: " + command);
String line;
Process process = Runtime.getRuntime().exec(command);
Reader r = new InputStreamReader(process.getInputStream());
BufferedReader in = new BufferedReader(r);
while ((line = in.readLine()) != null)
System.out.println(line);
in.close();
}
error-msg:
Exception in thread "main" java.io.IOException: Cannot run program "minisat_static": error=2, Datei oder Verzeichnis nicht gefunden
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1041)
at java.lang.Runtime.exec(Runtime.java:617)
at java.lang.Runtime.exec(Runtime.java:450)
at java.lang.Runtime.exec(Runtime.java:347)
at circuit.circuit.printLinuxCommand(circuit.java:76)
at circuit.circuit.main(circuit.java:70)
Caused by: java.io.IOException: error=2, Datei oder Verzeichnis nicht gefunden
at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.<init>(UNIXProcess.java:135)
at java.lang.ProcessImpl.start(ProcessImpl.java:130)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1022)
... 5 more
Can anybody help me?
Try to put the full path to
minisat_static
in your command.