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」で機能しないのはなぜですか?
また、jGraphViz (http://jgraphviz.sourceforge.net/) や graphviz-java-api (http://www.loria.fr/~szathmar/off/projects/) など、GraphViz 用の Java API もいくつか検索しました。 java/GraphVizAPI/index.php) ですが、私にはうまくいかないようです。
参考までに、私は Ubuntu 11.10 を使用しており、GraphViz は既にインストールされています。
ありがとう!