使用Java调用sccmap

使用Java调用sccmap,java,graphviz,dot,Java,Graphviz,Dot,我试图使用Java从GraphViz调用sccmap命令 String command = "/usr/bin/sccmap -S /home/paperclip/Desktop/graph.dot > /home/paperclip/Desktop/scc.dot"; try { Runtime rt = Runtime.getRuntime(); Process p = rt.exec(command);

我试图使用Java从GraphViz调用sccmap命令

        String command = "/usr/bin/sccmap -S /home/paperclip/Desktop/graph.dot > /home/paperclip/Desktop/scc.dot";
        try {
            Runtime rt = Runtime.getRuntime();
            Process p = rt.exec(command);
            System.out.println("Process exited with code = " + p.waitFor());
            java.io.InputStream is = p.getInputStream();
            java.io.BufferedReader reader = new java.io.BufferedReader(new InputStreamReader(is));
            String s = null;
            while ((s = reader.readLine()) != null) {
                System.out.println(s);
            }
            is.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
此代码片段的输出为:

进程已退出,代码为0

sccmap函数应该在我指定的位置输出一个点文件。然而,它不像我预期的那样工作。即使exitValue被指定为0,也没有创建点文件

我试着在终端中手动使用这个命令,效果非常好。我还尝试使用其他命令,如“ls”,它也可以工作。为什么此代码不适用于“sccmap”

我还搜索了一些用于GraphViz的JavaAPI,比如jGraphViz(http://jgraphviz.sourceforge.net/)和graphviz java api,位于(http://www.loria.fr/~szathmar/off/projects/java/GraphVizAPI/index.php),但它们似乎不适合我

仅供参考,我在Ubuntu 11.10上,GraphViz已经安装


谢谢

由shell解释(它是一个流重定向),而不是应用程序的参数。在这种情况下没有炮弹


试试
/usr/bin/sccmap-S-o/home/paperclip/Desktop/scc.dot/home/paperclip/Desktop/graph.dot

由shell解释(它是一个流重定向),它不是应用程序的参数。在这种情况下没有炮弹


试试
/usr/bin/sccmap-S-o/home/paperclip/Desktop/scc.dot/home/paperclip/Desktop/graph.dot

试试
/usr/bin/sccmap-S-o/home/paperclip/Desktop/scc.dot/home/paperclip/Desktop/graph.dot
。奇怪的是,这对我有效。非常感谢。试试
/usr/bin/sccmap-S-o/home/paperclip/Desktop/scc.dot/home/paperclip/Desktop/graph.dot
。奇怪的是,这对我来说很有效。非常感谢。