1
我正在使用graphviz基於在scala程序中傳遞的消息生成圖。 爲了從scala程序中調用graphviz應用程序,我使用了exec()方法(類似於Java)。它成功地執行命令和創建的圖形時我用下面的代碼片斷:Scala - 無法在特定場景中通過終端執行進程
var cmd: String = "dot -Tpng Graph.dot -o Graph.png"
var run: Runtime = Runtime.getRuntime() ;
var pr: Process = run.exec(cmd) ;
但是它無法改變輸入和輸出的文件的路徑之後執行(I只是包括一個目錄內,其輸入文件並輸出文件如下所示)
def main(args: Array[String]): Unit = {
var DirectoryName: String = "Logs"
var GraphFileName: String = DirectoryName + File.separator + "Graph.dot"
val GraphFileObj: File = new File(GraphFileName)
// var cmd: String = "dot -Tpng Graph.dot -o Graph.png"
var cmd: String = "dot -Tpng \"" + GraphFileObj.getAbsolutePath + "\" -o \"" + DirectoryName + File.separator + "Graph.png\"" ;
println(cmd)
var run: Runtime = Runtime.getRuntime() ;
var pr: Process = run.exec(cmd) ;
}
通過終端執行相同的命令可以提供正確的輸出。你能幫我找到我失蹤的東西嗎?
你在使用什麼操作系統? – Faiz
@Faiz我使用的是Ubuntu 12.04 –
你會得到什麼樣或錯誤? – Faiz