[ http://jira.codehaus.org/browse/MJAVADOC-136?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_116261 ]
Bert Van der Heyden commented on MJAVADOC-136: ---------------------------------------------- I had exactly the same problem and it has indeed nothing to do with UmlGraphDoc which is a wonderful tool I must admit. I assume this is a Windows XP issue which has to do with the fact that Runtime.getRuntime().exec("some command") always fails. Anyway, I have found a cure: By building a bat file in the temp directory containing the correct command and using the ProcessBuilder class afterwards to run that bat file, it works like a charm. It took me a while to find that out, but it was worth every second. Those generated UML diagrams are just very cool. And here is the code for in UmlGraphDoc {{ private static void runGraphviz(String outputFolder, String packageName, String name, RootDoc root) { File dotFile = new File(outputFolder, (new StringBuilder()).append( packageName.replace(".", "/")).append("/").append(name).append( ".dot").toString()); File pngFile = new File(outputFolder, (new StringBuilder()).append( packageName.replace(".", "/")).append("/").append(name).append( ".png").toString()); File mapFile = new File(outputFolder, (new StringBuilder()).append( packageName.replace(".", "/")).append("/").append(name).append( ".map").toString()); try { String[] dotCmdArray=new String[] { "dot", "-Tcmapx", "-o", "\"" + mapFile.getAbsolutePath() + "\"", "-Tpng", "-o", "\"" + pngFile.getAbsolutePath() + "\"", "\"" + dotFile.getAbsolutePath() + "\""}; StringBuffer dotCmd=new StringBuffer(); for (int i=0;i<dotCmdArray.length;i++){ dotCmd.append(dotCmdArray[i]); dotCmd.append(" "); } String cmd=dotCmd.toString(); String tmpBatFile=System.getenv("temp") + "/rundot.bat"; try{ BufferedWriter out=new BufferedWriter(new FileWriter(tmpBatFile)); out.write("echo off\n"); out.write(cmd); out.close(); }catch(IOException e){} List<String> command = new ArrayList<String>(); command.add(tmpBatFile); command.add("/A"); ProcessBuilder builder = new ProcessBuilder(command); Map<String, String> environ = builder.environment(); builder.directory(new File(System.getenv("temp"))); final Process process = builder.start(); InputStream is = process.getInputStream(); InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); String line; while ((line = br.readLine()) != null) { //System.out.println(line); } //System.out.println("Program terminated!"); } catch (Exception e) { e.printStackTrace(); } } }} > UmlGraph 4.8 - could not find map file > -------------------------------------- > > Key: MJAVADOC-136 > URL: http://jira.codehaus.org/browse/MJAVADOC-136 > Project: Maven 2.x Javadoc Plugin > Issue Type: Bug > Affects Versions: 2.3 > Environment: Windows XP > Reporter: gvsg > Assignee: Vincent Siveton > Priority: Blocker > Fix For: 2.4 > > > I'm using the maven-javadoc-plugin with the umlgraph doclet. > See below my partial pom.xml file. > <plugin> > <groupId>org.apache.maven.plugins</groupId> > <artifactId>maven-javadoc-plugin</artifactId> > <configuration> > <aggregate>true</aggregate> > > <doclet>gr.spinellis.umlgraph.doclet.UmlGraphDoc</doclet> > <docletArtifact> > <groupId>gr.spinellis</groupId> > <artifactId>UmlGraph</artifactId> > <version>4.8</version> > </docletArtifact> > <additionalparam> > -inferrel -inferdep -quiet -hide > java.* > -collpackages java.util.* -qualify > -postfixpackage -nodefontsize 9 > -nodefontpackagesize 7 > </additionalparam> > </configuration> > </plugin> > When executing the javadoc plugin I receive the following error: > [WARNING] javadoc: warning - Could not find map file > .\com\vangenechten\system\order\service\ConfirmationSloganManagementBean.map > [WARNING] java.io.IOException: CreateProcess: dot -Tcmapx -o > E:\erp\java\systems\order\internals\target\site\apidocs\.\com\vangenechten\system\order\service\CommercialDivisionManagementBean.map > -Tpng -o > E:\erp\java\systems\order\internals\target\site\apidocs\.\com\vangenechten\system\order\service\C > ommercialDivisionManagementBean.png > E:\erp\java\systems\order\internals\target\site\apidocs\.\com\vangenechten\system\order\service\CommercialDivisionManagementBean.dot > error=2 > [WARNING] at java.lang.ProcessImpl.create(Native Method) > [WARNING] at java.lang.ProcessImpl.<init>(ProcessImpl.java:81) > [WARNING] at java.lang.ProcessImpl.start(ProcessImpl.java:30) > [WARNING] at java.lang.ProcessBuilder.start(ProcessBuilder.java:451) > [WARNING] at java.lang.Runtime.exec(Runtime.java:591) > [WARNING] at java.lang.Runtime.exec(Runtime.java:464) > [WARNING] at > gr.spinellis.umlgraph.doclet.UmlGraphDoc.runGraphviz(UmlGraphDoc.java:131) > [WARNING] at > gr.spinellis.umlgraph.doclet.UmlGraphDoc.generateContextDiagrams(UmlGraphDoc.java:114) > [WARNING] at > gr.spinellis.umlgraph.doclet.UmlGraphDoc.start(UmlGraphDoc.java:64) > [WARNING] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > [WARNING] at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > [WARNING] at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > [WARNING] at java.lang.reflect.Method.invoke(Method.java:585) > [WARNING] at > com.sun.tools.javadoc.DocletInvoker.invoke(DocletInvoker.java:269) > [WARNING] at com.sun.tools.javadoc.DocletInvoker.start(DocletInvoker.java:143) > [WARNING] at com.sun.tools.javadoc.Start.parseAndExecute(Start.java:340) > [WARNING] at com.sun.tools.javadoc.Start.begin(Start.java:128) > [WARNING] at com.sun.tools.javadoc.Main.execute(Main.java:41) > [WARNING] at com.sun.tools.javadoc.Main.main(Main.java:31) -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira