问题
I am trying to generate the uml diagram from yDoc library. It basically uses Javadoc to parse tha Java source files. However, when I am trying to execute the command from terminal(OS X), I am getting following error:
javadoc: error - In doclet class ydoc.doclets.YStandard, method start has thrown
an exception
java.lang.reflect.InvocationTargetException java.lang.NoSuchMethodError:
com.sun.tools.doclets.internal.toolkit.taglets.TagletManager.
getConstructorCustomTags()[Lcom/sun/tools/doclets/internal/toolkit/taglets/Taglet;
at ydoc.doclets.F$_A.<init>(Unknown Source)
at ydoc.doclets.F.B(Unknown Source)
at ydoc.doclets.F.E(Unknown Source)
at ydoc.doclets.J.setSpecificDocletOptions(Unknown Source)
at com.sun.tools.doclets.internal.toolkit.Configuration.setOptions(Configuration.java:560)
at ydoc.doclets.J.setOptions(Unknown Source)
at ydoc.doclets.C.A(Unknown Source)
at ydoc.doclets.YStandard.start(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.sun.tools.javadoc.DocletInvoker.invoke(DocletInvoker.java:310)
at com.sun.tools.javadoc.DocletInvoker.start(DocletInvoker.java:189)
at com.sun.tools.javadoc.Start.parseAndExecute(Start.java:366)
at com.sun.tools.javadoc.Start.begin(Start.java:219)
at com.sun.tools.javadoc.Start.begin(Start.java:205)
at com.sun.tools.javadoc.Main.execute(Main.java:64)
at com.sun.tools.javadoc.Main.main(Main.java:54)
I ran the following execution command:
javadoc @doc/examples/options.sample.linux <Java file path>
I am also getting same error when trying from Eclipse IDE.
回答1:
@codeblues and @Grant M, I just noticed this question. I am the author of that blog post Grant M mentioned. I just tried my instructions again, I am getting Javadoc with UML diagram as expected.
To me, this sounds like a version mismatch between JDK (and JavaDoc)and Ydoc.jar. Javadoc related classes are in a jar called tools.jar in jdk\lib folder. You may want to check your classpath to see if it includes the right JDK. You can probably try which javadoc on *nix (or "where javadoc" on Win 7+ to find out the JDK location used).
The mention "Unknown source' in your exception seems to indicate you are pointing to JRE instead of JDK?? Also, see this Stackoverflow post about "(unknown source)" in Java Exceptions.
I hope you can get this to work, to see the UMLs jump into your Javadoc!
HTH
Sam
来源:https://stackoverflow.com/questions/32820086/javadoc-error-java-lang-reflect-invocationtargetexception