[英]Java Runtime.exec() + Minisat
我為verilog.v
文件編寫了一個邏輯門模擬器和網表解析器。 現在,我想用SAT模塊做一些等效檢查。
目前,我使用Sat4J
但我想使用minisat2
進行檢查。 我安裝了minisat,可以通過輸入以下命令從控制台運行它:
minisat_static cnf.file
對於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();
}
錯誤信息:
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
有誰能夠幫助我?
嘗試在命令中放入minisat_static
的完整路徑。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.