[英]Java Runtime.exec() + Minisat
I programmed an logic gate simulator and netlist parser for verilog.v
files. 我为verilog.v
文件编写了一个逻辑门模拟器和网表解析器。 Now I´d like to do some equivalents checks with a SAT module. 现在,我想用SAT模块做一些等效检查。
Currently I use Sat4J
but I´d like to use minisat2
for the checking. 目前,我使用Sat4J
但我想使用minisat2
进行检查。 I installed minisat and can run it from console by typing: 我安装了minisat,可以通过输入以下命令从控制台运行它:
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 对于ls,ps等简单指令,我的Java启动/执行代码更少,它运行得很好...但是如果我使用minisat_static <path-to-file>
它不会
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? 有谁能够帮助我?
尝试在命令中放入minisat_static
的完整路径。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.