使用IllegalArgumentException,Javadoc创建失败

时间:2014-07-08 15:46:22

标签: java ant javadoc

我正在使用Netbeans并尝试过命令提示符。在这两种情况下,我都会得到同样的错误。

当我尝试生成我的JavaDocs时,我得到一个IllegalArgumentexception。我做了研究,建议是Clear out your Classpath Bug Ticket

有人可以指导我清楚我要清理的内容以及如何在Windows机器上执行此操作。

使用JDK 1.6并使用JDK 1.7

进行测试

Netbeans的输出

ant -f C:\\Users\\SomeProject javadoc
init:
Warning: Leaving out empty argument '-windowtitle'
Generating Javadoc
Javadoc execution
Loading source file C:\Users\Achievers.java...
Loading source file C:\Users\AchieversPage.java...
Constructing Javadoc information...
Standard Doclet version 1.6.0_37
Building tree for all the packages and classes...

ANT Scrict(相关块)

<target depends="init" if="have.sources" name="-javadoc-build">
    <mkdir dir="${dist.javadoc.dir}"/>
    <condition else="" property="javadoc.endorsed.classpath.cmd.line.arg" value="-J${endorsed.classpath.cmd.line.arg}">
        <and>
            <isset property="endorsed.classpath.cmd.line.arg"/>
            <not>
                <equals arg1="${endorsed.classpath.cmd.line.arg}" arg2=""/>
            </not>
        </and>
    </condition>
    <javadoc additionalparam="${javadoc.additionalparam}" author="${javadoc.author}" charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8" encoding="${javadoc.encoding.used}" executable="${platform.javadoc}" failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}" notree="${javadoc.notree}" private="${javadoc.private}" source="${javac.source}" splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}">
        <classpath>
            <path path="${javac.classpath}"/>
        </classpath>
        <fileset dir="${src.dir}" excludes="*.java,${excludes}" includes="${includes}">
            <filename name="**/*.java"/>
        </fileset>
        <fileset dir="${build.generated.sources.dir}" erroronmissingdir="false">
            <include name="**/*.java"/>
            <exclude name="*.java"/>
        </fileset>
        <arg line="${javadoc.endorsed.classpath.cmd.line.arg}"/>
    </javadoc>
    <copy todir="${dist.javadoc.dir}">
        <fileset dir="${src.dir}" excludes="${excludes}" includes="${includes}">
            <filename name="**/doc-files/**"/>
        </fileset>
        <fileset dir="${build.generated.sources.dir}" erroronmissingdir="false">
            <include name="**/doc-files/**"/>
        </fileset>
    </copy>
</target>
<target depends="init,-javadoc-build" if="netbeans.home" name="-javadoc-browse" unless="no.javadoc.preview">
    <nbbrowse file="${dist.javadoc.dir}/index.html"/>
</target>
<target depends="init,-javadoc-build,-javadoc-browse" description="Build Javadoc." name="javadoc"/>

错误

java.lang.IllegalArgumentException
    at sun.net.www.ParseUtil.decode(ParseUtil.java:189)
    at sun.misc.URLClassPath$FileLoader.<init>(URLClassPath.java:958)
    at sun.misc.URLClassPath$3.run(URLClassPath.java:328)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.misc.URLClassPath.getLoader(URLClassPath.java:322)
    at sun.misc.URLClassPath.getLoader(URLClassPath.java:299)
    at sun.misc.URLClassPath.findResource(URLClassPath.java:145)
    at java.net.URLClassLoader$2.run(URLClassLoader.java:385)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findResource(URLClassLoader.java:382)
    at java.lang.ClassLoader.getResource(ClassLoader.java:1002)
    at java.lang.ClassLoader.getResourceAsStream(ClassLoader.java:1192)
    at javax.xml.parsers.SecuritySupport$4.run(SecuritySupport.java:96)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.xml.parsers.SecuritySupport.getResourceAsStream(SecuritySupport.java:89)
    at javax.xml.parsers.FactoryFinder.findJarServiceProvider(FactoryFinder.java:250)
    at javax.xml.parsers.FactoryFinder.find(FactoryFinder.java:223)
    at javax.xml.parsers.SAXParserFactory.newInstance(SAXParserFactory.java:128)
    at com.sun.tools.doclets.internal.toolkit.builders.LayoutParser.parseXML(LayoutParser.java:72)
    at com.sun.tools.doclets.internal.toolkit.builders.ClassBuilder.build(ClassBuilder.java:108)
    at com.sun.tools.doclets.formats.html.HtmlDoclet.generateClassFiles(HtmlDoclet.java:155)
    at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.generateClassFiles(AbstractDoclet.java:177)
    at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.generateClassFiles(AbstractDoclet.java:161)
    at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.startGeneration(AbstractDoclet.java:106)
    at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.start(AbstractDoclet.java:64)
    at com.sun.tools.doclets.formats.html.HtmlDoclet.start(HtmlDoclet.java:42)
    at com.sun.tools.doclets.standard.Standard.start(Standard.java:23)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.sun.tools.javadoc.DocletInvoker.invoke(DocletInvoker.java:269)
    at com.sun.tools.javadoc.DocletInvoker.start(DocletInvoker.java:143)
    at com.sun.tools.javadoc.Start.parseAndExecute(Start.java:340)
    at com.sun.tools.javadoc.Start.begin(Start.java:128)
    at com.sun.tools.javadoc.Main.execute(Main.java:41)
    at com.sun.tools.javadoc.Main.main(Main.java:31)
com.sun.tools.doclets.internal.toolkit.util.DocletAbortException
    at com.sun.tools.doclets.internal.toolkit.builders.LayoutParser.parseXML(LayoutParser.java:79)
    at com.sun.tools.doclets.internal.toolkit.builders.ClassBuilder.build(ClassBuilder.java:108)
    at com.sun.tools.doclets.formats.html.HtmlDoclet.generateClassFiles(HtmlDoclet.java:155)
    at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.generateClassFiles(AbstractDoclet.java:177)
    at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.generateClassFiles(AbstractDoclet.java:161)
    at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.startGeneration(AbstractDoclet.java:106)
    at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.start(AbstractDoclet.java:64)
    at com.sun.tools.doclets.formats.html.HtmlDoclet.start(HtmlDoclet.java:42)
    at com.sun.tools.doclets.standard.Standard.start(Standard.java:23)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.sun.tools.javadoc.DocletInvoker.invoke(DocletInvoker.java:269)
    at com.sun.tools.javadoc.DocletInvoker.start(DocletInvoker.java:143)
    at com.sun.tools.javadoc.Start.parseAndExecute(Start.java:340)
    at com.sun.tools.javadoc.Start.begin(Start.java:128)
    at com.sun.tools.javadoc.Main.execute(Main.java:41)
    at com.sun.tools.javadoc.Main.main(Main.java:31)
com.sun.tools.doclets.internal.toolkit.util.DocletAbortException
    at com.sun.tools.doclets.formats.html.HtmlDoclet.generateClassFiles(HtmlDoclet.java:159)
    at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.generateClassFiles(AbstractDoclet.java:177)
    at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.generateClassFiles(AbstractDoclet.java:161)
    at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.startGeneration(AbstractDoclet.java:106)
    at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.start(AbstractDoclet.java:64)
    at com.sun.tools.doclets.formats.html.HtmlDoclet.start(HtmlDoclet.java:42)
    at com.sun.tools.doclets.standard.Standard.start(Standard.java:23)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.sun.tools.javadoc.DocletInvoker.invoke(DocletInvoker.java:269)
    at com.sun.tools.javadoc.DocletInvoker.start(DocletInvoker.java:143)
    at com.sun.tools.javadoc.Start.parseAndExecute(Start.java:340)
    at com.sun.tools.javadoc.Start.begin(Start.java:128)
    at com.sun.tools.javadoc.Main.execute(Main.java:41)
    at com.sun.tools.javadoc.Main.main(Main.java:31)
C:\Users\SomeProject\nbproject\build-impl.xml:1228: Javadoc returned 1

1 个答案:

答案 0 :(得分:4)

答案很简单

1)打开命令提示符

2)键入以下内容以清除类路径

set classpath=

3)在同一命令提示符窗口中运行Javadoc命令

javadoc -d <path to save docs to> -sourcepath <location of code/files> <package name>