我正在使用 graphviz 根据 scala 程序中传递的消息生成图形。为了从 scala 程序内部调用 graphviz 应用程序,我使用了 exec() 方法(类似于 Java)。当我使用以下代码片段时,它成功执行了命令并创建了图表:
var cmd: String = "dot -Tpng Graph.dot -o Graph.png"
var run: Runtime = Runtime.getRuntime() ;
var pr: Process = run.exec(cmd) ;
但是更改输入和输出文件的路径后它无法执行(我只是包含了一个目录,其中输入文件和输出文件所在的目录如下所示)
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) ;
}
通过终端执行相同的命令会给出正确的输出。你能帮我找到我缺少的东西吗?