Eclipse JavaDoc生成与IllegalArgumentException失败? [英] Eclipse JavaDoc Generation fails with IllegalArgumentException?

查看:149
本文介绍了Eclipse JavaDoc生成与IllegalArgumentException失败?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我尝试为任何javadoc注释类导出或生成javadoc时,我总是收到一个错误,直到最近刚刚生成完全空的html文件。



这是我以前收到的错误:

 构建Javadoc信息... 
标准Doclet版本1.7.0_03
构建所有包和类的树...
生成C:\Users\James\Workspace\TestCLASS.html。...
java.lang.IllegalArgumentException
at sun.net.www.ParseUtil.decode(ParseUtil.j ...
at sun.misc.URLClassPath $ FileLoader。< init>(...
at sun.misc.URLClassPath $ 3。 run(URLClassPath ...
at sun.misc.URLClassPath $ 3.run(URLClassPath ...
at java.security.AccessController.doPrivile ... Method)
at sun.misc.URLClassPath.getLoader(URLClass ...
at sun.misc.URLClassPath.getLoader(URLClass ...
at sun.misc.URLClassPath.findResource(URLCl ...
at java.net.URLClassLoader $ 2.run (URLClassLo ...
在java.net.URLClassLoader $ 2.run(URLClassLo ...
在java.security.AccessController.doPrivile ...方法)
在java.net.URLClassLoader.findResource(URL ...
在java.lang.ClassLoader.getResource(ClassL ...
在java.net.URLClassLoader.getResourceAsStr ...
在javax.xml.parsers.SecuritySupport $ 4.run(...
在java .security.AccessController.doPrivile ...方法)
在javax.xml.parsers.SecuritySupport.getRes ...
在javax.xml.parsers.FactoryFinder.findJarS ...
在javax.xml.parsers。 FactoryFinder.find(Fac ...
at javax.xml.parsers.SAXParserFactory.newIn ...
at com.sun.tools.doclets.internal.toolkit.b ...
at com.sun.tools .doclets.internal.toolkit.b ...
在com.sun.tools.doclets.formats.html.HtmlD ...
在com.sun.tools.doclets.internal.toolkit.A ...
在com.sun.tools.doclets.internal.toolkit.A ...
在com.sun.tools.doclets.internal.toolkit.A ...
在com.sun.tools.doclets.internal。 toolkit.A ...
在com.sun.tools.doclets.for mats.html.HtmlD ...
at com.sun.tools.doclets.standard.Standard。...
at sun.reflect.NativeMethodAccessorImpl.inv ...方法)
at sun.reflect.NativeMethodAccessorImpl。 inv ...
at sun.reflect.DelegatingMethodAccessorImpl ...
在java.lang.reflect.Method.invoke(Method.j ...
at com.sun.tools.javadoc.DocletInvoker.invo ...
在com.sun.tools.javadoc.DocletInvoker.star ...
在com.sun.tools.javadoc.Start.parseAndExec ...
在com.sun.tools.javadoc.Start.begin(开始...
在com.sun.tools.javadoc.Main.execute(主要...
在com.sun.tools.javadoc.Main.main(Main.jav ...
com。 sun.tools.doclets.internal.toolkit ...
在com.sun.tools.doclets.internal.toolkit.b ...
在com.sun.tools.doclets.internal.toolkit.b ...
at com.sun.tools.doclets.formats.html.HtmlD ...
at com.sun.tools.doclets.internal.toolkit.A ...
at com.sun.tools.doclets.internal .toolkit.A ...
在com.sun.tools.doclets.internal.toolkit.A ...
在com.sun.tools.doclets.internal.too lkit.A ...
at com.sun.tools.doclets.formats.html.HtmlD ...
at com.sun.tools.doclets.standard.Standard。...
at sun.reflect。 NativeMethodAccessorImpl.inv ...方法)
at sun.reflect.NativeMethodAccessorImpl.inv ...
at sun.reflect.DelegatingMethodAccessorImpl ...
在java.lang.reflect.Method.invoke(Method.j ...
在com.sun.tools.javadoc.DocletInvoker.invo ...
在com.sun.tools.javadoc.DocletInvoker.star ...
在com.sun.tools.javadoc.Start.parseAndExec ...
在com.sun.tools.javadoc.Start.begin(开始...
在com.sun.tools.javadoc.Main.execute(主要...
在com.sun.tools .javadoc.Main.main(Main.jav ...
com.sun.tools.doclets.internal.toolkit ...
在com.sun.tools.doclets.formats.html.HtmlD ...

我相信它在我开始告诉向导将html文件放入名为docs的文件夹的时候停止了这个错误我的工作区,唉,这个文件夹只有一个空的html文件,其中一个类的名字我我的项目(通常是Stack.html或Entry.html)



另外我不幸的是删除了TestClass类,因为它只是一个测试,但是这是Stack类,我不能生成javadoc for:

  / ** 
*提供创建Stack数据结构所需的类。
* /
package coursworksone;

import java.util.ArrayList;

/ **
*于2012年10月22日创建。
*
* @author James
* /
public class Stack {
/ **
*堆栈元素所在的动态数组。
* /
private ArrayList< Entry>阵列;
/ **
*堆栈的大小(堆栈上的元素数)。
* /
private int size;

/ **
*构造一个初始大小为0的空堆栈
* /
public Stack(){
array = new ArrayList< ;条目>();
size = 0;
}

/ **
*检查堆栈中的元素数量。
*
* @返回栈中元素的数量
* /
public final int size(){
return size;
}

/ **
*向堆栈添加一个元素,并将堆栈大小增加1.
*
* @param i
*要添加到堆栈的元素
* /
public final void push(final Entry i){
//将条目添加到堆栈
数组。添加(ⅰ);
//将堆栈大小增加一个
size ++;
}

/ **
*返回堆栈顶部的元素。
*
* @返回堆栈中的顶级元素
* /
public final Entry top(){
//获取ArrayList结尾处的元素(顶部元素)和
//返回它
返回array.get(size - 1);
}

/ **
*返回堆栈顶部的元素,然后从堆栈中删除元素
*。
*
* @返回堆栈中的顶级元素
* /
public final Entry pop(){
//将元素存储在ArrayList的末尾在一个临时的
//变量
条目mostRecentEntry = array.get(size - 1);
//从ArrayList
array.remove(size - 1)的末尾删除元素;
//将堆栈的大小减少一个
size--;
//返回ArrayList结尾处的元素
return mostRecentEntry;
}
}

Ive还使用javadoc向导保存javadoc导出为Ant脚本,其内容如下:

  <?xml version =1.0encoding = UTF-8standalone =否?> 
< project default =javadoc>
< target name =javadoc>
< javadoc access =publicauthor =trueclasspath =C:\Users\James\Documents\Eclipse\plugins\org.hamcrest.core_1.1.0.v20090501071000.jar ; C:\Users\James\Documents\Eclipse\plugins\org.junit_4.10.0.v4_10_0_v20120426-0900\junit.jardestdir =C:\Users\James\workspace\\ \\ docsdoctitle =Stack Implementationnodeprecated =falsenodeprecatedlist =falsenoindex =falsenonavbar =falsenotree =falsepackagenames =courseworkone,testcourseworkonesource =1.7sourcepath =src ; testsplitindex =trueuse =trueversion =true/>
< / target>
< / project>

这是Ant构建运行中的控制台输出:



pre> 2012年2月26日编译的Apache Ant(TM)版本1.8.3
2012年2月26日编译的Apache Ant(TM)版本1.8.3
设置ro项目属性:ant.file - > C:\Users\James\workspace\2ndYearWork\SoftEngCoursework1\javadoc.xml
Buildfile:C:\Users\James\workspace\2ndYearWork\SoftEngCoursework1\javadoc.xml
添加引用:ant.projectHelper
添加引用:ant.parsing.context
添加引用:ant.targets
解析构建文件C:\Users\James\workspace\\ \\ 2ndYearWork\SoftEngCoursework1\javadoc.xml,其URI = file:/ C:/Users/James/workspace/2ndYearWork/SoftEngCoursework1/javadoc.xml
设置ro项目属性:ant.project.default-target - > ; javadoc
项目基础目录设置为:C:\Users\James\workspace\2ndYearWork\SoftEngCoursework1
+目标:
+目标:javadoc
添加引用: ant.LocalProperties
设置ro项目属性:ant.project.invoked-targets - > javadoc
添加引用:eclipse.ant.targetVector
目标的构建顺序`javadoc'是[javadoc]
完整的构建序列是[javadoc,]
javadoc:
解析buildfile jar:file:/ C:/Users/James/Documents/Eclipse/plugins/org.apache.ant_1.8.3.v20120321-1730/lib/ant.jar!/ org / apache / tools / ant /使用URI = jar的antlib.xml:file:/ C:/Users/James/Documents/Eclipse/plugins/org.apache.ant_1.8.3.v20120321-1730/lib/ant.jar!/ org / apache / tools / ant来自zip文件的/antlib.xml
[javadoc]扫描C:\Users\James\workspace\2ndYearWork\SoftEngCoursework1\src的包。
dirset:安装扫描程序dir C:\Users\James\workspace\2ndYearWork\SoftEngCoursework1\src with patternSet {includes:[courseworkone,testcourseworkone] excludes:[]}
[ javadoc]扫描C:\Users\James\workspace\2ndYearWork\SoftEngCoursework1\test for packages。
dirset:安装扫描程序dir C:\Users\James\workspace\2ndYearWork\SoftEngCoursework1\test with patternSet {includes:[courseworkone,testcourseworkone] excludes:[]}
[ javadoc]生成Javadoc
[javadoc]执行'C:\Program文件(x86)\Java\jdk1.7.0_03\bin\javadoc.exe'与参数:
[javadoc] '-public'
[javadoc]'-d'
[javadoc]'C:\Users\James\workspace\docs'
[javadoc]'-splitindex'
[javadoc]'-use'
[javadoc]'-doctitle'
[javadoc]'栈实现'
[javadoc]'-classpath'
[javadoc] C:\Users\James\Documents\Eclipse\plugins\org.hamcrest.core_1.1.0.v20090501071000.jar; C:\Users\James\Documents\Eclipse\plugins\\ '
[javadoc]'-version'
[javadoc]'-aut ''
[javadoc]'-sourcepath'
[javadoc]'C:\Users\James\workspace\2ndYearWork\SoftEngCoursework1\src; C:\Users\James $'
[javadoc]'$'
[javadoc]'coursworksone'
[javadoc] ]'testcourseworkone'
[javadoc]
[javadoc]可执行文件和参数周围的字符是
[javadoc]不是命令的一部分。
[javadoc] Javadoc执行
执行:Java13CommandLauncher:执行'C:\Program文件(x86)\Java\jdk1.7.0_03\bin\javadoc.exe'与参数:
'-public'
'-d'
'C:\Users\James\workspace\docs'
'-splitindex'
'-use '
'-doctitle'
'Stack实现'
'-classpath'
'C:\Users\James\Documents\Eclipse\plugins\org .hamcrest.core_1.1.0.v20090501071000.jar; C:\Users\James\Documents\Eclipse\plugins\org.junit_4.10.0.v4_10_0_v20120426-0900\junit.jar'
' -version'
'-author'
'-sourcepath'
'C:\Users\James\workspace\2ndYearWork\SoftEngCoursework1\src; C:\Users \James\workspace\2ndYearWork\SoftEngCoursework1\test'
'-source'
'1.7'
'coursworksone'
'testcourseworkone'

'可执行文件和参数周围的字符是
不是命令的一部分。
[javadoc]加载软件包coursworksone的源文件...
[javadoc]加载软件包testcourseworkone ...的源文件
[javadoc]构造Javadoc信息...
[ javadoc] Standard Doclet版本1.7.0_03
[javadoc]构建所有包和类的树...
[javadoc] java.lang.IllegalArgumentException
[javadoc]在sun.net。 www.ParseUtil.decode(ParseUtil.java:202)
[javadoc] at sun.misc.URLClassPath $ FileLoader。< init>(URLClassPath.java:1016)
[javadoc] at sun.misc .URLClassPath $ 3.run(URLClassPath.java:357)
[javadoc] at sun.misc.URLClassPath $ 3.run(URLClassPath.java:352)
[javadoc]在java.security.AccessController.doPrivileged (Native Method)
[javadoc] at sun.misc.URLClassPath.getLoader(URLClassPath.java:351)
[javadoc] at sun.misc.URLClassPath.getLoader(URLClassPath.java:328)
[javadoc] at sun.misc.URLClassPath.findResource(URLClassPath.java:171)
[javadoc]在java.net.URLClassLoader $ 2.run(URLClassLoader.java:551)
[javadoc]在java.net.URLClassLoader $ 2.run(URLClassLoader.java:549)
java.security.AccessController.doPrivileged(Native Method)中的javadoc] java.util.Roader.findResource(URLClassLoader.java:548)
[javadoc] java.lang.ClassLoader中的
[javadoc] .getResource(ClassLoader.java:1138)
[javadoc]在java.net.URLClassLoader.getResourceAsStream(URLClassLoader.java:227)
[javadoc]在javax.xml.parsers.SecuritySupport $ 4.run( SecuritySupport.java:94)
[javadoc]在java.security.AccessController.doPrivileged(本机方法)
[javadoc]在javax.xml.parsers.SecuritySupport.getResourceAsStream(SecuritySupport.java:87)
[javadoc]在javax.xml.parsers.FactoryFinder.findJarServiceProvider(FactoryFinder.java:248)
[javadoc]在javax.xml.parsers.FactoryFinder.find(FactoryFinder.java:221)
[javadoc]在javax.xml.pa rsers.SAXParserFactory.newInstance(SAXParserFactory.java:126)
[javadoc]在com.sun.tools.doclets.internal.toolkit.builders.LayoutParser.parseXML(LayoutParser.java:88)
[javadoc ]在com.sun.tools.doclets.internal.toolkit.builders.ClassBuilder.build(ClassBuilder.java:117)
[javadoc]在com.sun.tools.doclets.formats.html.HtmlDoclet.generateClassFiles( HtmlDoclet.java:186)
[javadoc]在com.sun.tools.doclets.internal.toolkit.AbstractDoclet.generateClassFiles(AbstractDoclet.java:183)
[javadoc]在com.sun.tools。 doclets.internal.toolkit.AbstractDoclet.startGeneration(AbstractDoclet.java:125)
[javadoc]在com.sun.tools.doclets.internal.toolkit.AbstractDoclet.start(AbstractDoclet.java:83)
com.un.tools.doclets.formats.html.HtmlDoclet.start(HtmlDoclet.java:63)中的[javadoc]
[javadoc]在com.sun.tools.doclets.standard.Standard.start(Standard。 java:39)
[javadoc] at sun.reflect.NativeMethodAccessorImpl.invo ke0(Native Method)
[javadoc] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[javadoc] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[javadoc] java.lang.reflect.Method.invoke(Method.java:601)
[javadoc]在com.sun.tools.javadoc.DocletInvoker.invoke(DocletInvoker.java:280)
[javadoc] at com.sun.tools.javadoc.DocletInvoker.start(DocletInvoker.java:160)
[javadoc]在com.sun.tools.javadoc.Start.parseAndExecute(Start.java:397 )
[javadoc]在com.sun.tools.javadoc.Start.begin(Start.java:167)
[javadoc]在com.sun.tools.javadoc.Main.execute(Main.java :59)
[javadoc]在com.sun.tools.javadoc.Main.main(Main.java:49)
[javadoc] com.sun.tools.doclets.internal.toolkit.util。 DocletAbortException
[javadoc]在com.sun.tools.doclets.internal.toolkit.builders.LayoutParser.parseXML(LayoutParser.java:95)
[javadoc]在com.sun.tools.doclets.internal.toolkit.builders.ClassBuilder.build(ClassBuilder.java:117)
[javadoc]在com.sun.tools.doclets.formats.html.HtmlDoclet.generateClassFiles(HtmlDoclet .java:186)
[javadoc]在com.sun.tools.doclets.internal.toolkit.AbstractDoclet.generateClassFiles(AbstractDoclet.java:183)
[javadoc]在com.sun.tools.doclets .internal.toolkit.AbstractDoclet.startGeneration(AbstractDoclet.java:125)
[javadoc]在com.sun.tools.doclets.internal.toolkit.AbstractDoclet.start(AbstractDoclet.java:83)
[ com.un.tools.doclets.formats.html.HtmlDoclet.start(HtmlDoclet.java:63)中的javadoc]
[javadoc]在com.sun.tools.doclets.standard.Standard.start(Standard.java :39)
[javadoc] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[javadoc] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[javadoc ] at sun.reflect.DelegatingMethodAccessorImpl.invoke(D elegatingMethodAccessorImpl.java:43)
[javadoc] java.lang.reflect.Method.invoke(Method.java:601)
[javadoc]在com.sun.tools.javadoc.DocletInvoker.invoke( DocletInvoker.java:280)
[javadoc]在com.sun.tools.javadoc.DocletInvoker.start(DocletInvoker.java:160)
[javadoc]在com.sun.tools.javadoc.Start。 parseAndExecute(Start.java:397)
[javadoc]在com.sun.tools.javadoc.Start.begin(Start.java:167)
[javadoc]在com.sun.tools.javadoc。 Main.execute(Main.java:59)
[javadoc]在com.sun.tools.javadoc.Main.main(Main.java:49)
[javadoc] com.sun.tools.doclets .internal.toolkit.util.DocletAbortException在com.sun.tools.doclets.formats.html.HtmlDoclet.generateClassFiles(HtmlDoclet.java:190)
[javadoc]在com.sun中的
[javadoc]。 tools.doclets.internal.toolkit.AbstractDoclet.generateClassFiles(AbstractDoclet.java:183)
[javadoc]在com.sun.tools.doclets.internal.toolkit.AbstractDoclet.startGeneration( AbstractDoclet.java:125)
[javadoc]在com.sun.tools.doclets.internal.toolkit.AbstractDoclet.start(AbstractDoclet.java:83)
[javadoc]在com.sun.tools。 doclets.formats.html.HtmlDoclet.start(HtmlDoclet.java:63)
[javadoc]在com.sun.tools.doclets.standard.Standard.start(Standard.java:39)
[javadoc ] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[javadoc] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[javadoc] at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodMethodAccessorImpl.java:43)
[javadoc] java.lang.reflect.Method.invoke(Method.java:601)
[javadoc]在com.sun.tools.javadoc.DocletInvoker.invoke (DocletInvoker.java:280)
[javadoc]在com.sun.tools.javadoc.DocletInvoker.start(DocletInvoker.java:160)
[javadoc]在com.sun.tools.javadoc.Start .parseAndExecute(Start.java:397)
[javadoc]在com.sun.tools.javadoc.Sta在com.sun.tools.javadoc.Main.execute(Main.java:59)
[javadoc]在com.sun.tools中的
[javadoc] rt.begin(Start.java:167)
[javadoc] javadoc.Main.main(Main.java:49)
[javadoc]生成C:\Users\James\workspace\docs\coursworksone\Entry.html ...
BUILD SUCCESSFUL
总时间:5秒

我不知道为什么我无法正确生成javadocs



任何想法?

解决方案

我检查过你的代码/好像对我好我用不同版本的JavaDoc进行了测试。所以我检查了具体的例外。我发现这个: http://bugs.sun.com/bugdatabase/view_bug.do ?bug_id = 6219854



他们建议删除classpath作为环境变量。由于您正在使用Eclipse,因此构建和生成javadoc不需要在IDE之外进一步配置。检查您的变量并删除任何不必要的配置。


When I attempt to export or generate a javadoc for any of my javadoc commented classes I was always getting an error, until recently where it has just been generating entirely empty html files.

This is the error I was receiving before:

Constructing Javadoc information...
Standard Doclet version 1.7.0_03
Building tree for all the packages and classes...
Generating C:\Users\James\Workspace\TestCLASS.html.…
java.lang.IllegalArgumentException
at sun.net.www.ParseUtil.decode(ParseUtil.j…
at sun.misc.URLClassPath$FileLoader.<init>(…
at sun.misc.URLClassPath$3.run(URLClassPath…
at sun.misc.URLClassPath$3.run(URLClassPath…
at java.security.AccessController.doPrivile… Method)
at sun.misc.URLClassPath.getLoader(URLClass…
at sun.misc.URLClassPath.getLoader(URLClass…
at sun.misc.URLClassPath.findResource(URLCl…
at java.net.URLClassLoader$2.run(URLClassLo…
at java.net.URLClassLoader$2.run(URLClassLo…
at java.security.AccessController.doPrivile… Method)
at java.net.URLClassLoader.findResource(URL…
at java.lang.ClassLoader.getResource(ClassL…
at java.net.URLClassLoader.getResourceAsStr…
at javax.xml.parsers.SecuritySupport$4.run(…
at java.security.AccessController.doPrivile… Method)
at javax.xml.parsers.SecuritySupport.getRes…
at javax.xml.parsers.FactoryFinder.findJarS…
at javax.xml.parsers.FactoryFinder.find(Fac…
at javax.xml.parsers.SAXParserFactory.newIn…
at com.sun.tools.doclets.internal.toolkit.b…
at com.sun.tools.doclets.internal.toolkit.b…
at com.sun.tools.doclets.formats.html.HtmlD…
at com.sun.tools.doclets.internal.toolkit.A…
at com.sun.tools.doclets.internal.toolkit.A…
at com.sun.tools.doclets.internal.toolkit.A…
at com.sun.tools.doclets.internal.toolkit.A…
at com.sun.tools.doclets.formats.html.HtmlD…
at com.sun.tools.doclets.standard.Standard.…
at sun.reflect.NativeMethodAccessorImpl.inv… Method)
at sun.reflect.NativeMethodAccessorImpl.inv…
at sun.reflect.DelegatingMethodAccessorImpl…
at java.lang.reflect.Method.invoke(Method.j…
at com.sun.tools.javadoc.DocletInvoker.invo…
at com.sun.tools.javadoc.DocletInvoker.star…
at com.sun.tools.javadoc.Start.parseAndExec…
at com.sun.tools.javadoc.Start.begin(Start.…
at com.sun.tools.javadoc.Main.execute(Main.…
at com.sun.tools.javadoc.Main.main(Main.jav…
com.sun.tools.doclets.internal.toolkit…
at com.sun.tools.doclets.internal.toolkit.b…
at com.sun.tools.doclets.internal.toolkit.b…
at com.sun.tools.doclets.formats.html.HtmlD…
at com.sun.tools.doclets.internal.toolkit.A…
at com.sun.tools.doclets.internal.toolkit.A…
at com.sun.tools.doclets.internal.toolkit.A…
at com.sun.tools.doclets.internal.toolkit.A…
at com.sun.tools.doclets.formats.html.HtmlD…
at com.sun.tools.doclets.standard.Standard.…
at sun.reflect.NativeMethodAccessorImpl.inv… Method)
at sun.reflect.NativeMethodAccessorImpl.inv…
at sun.reflect.DelegatingMethodAccessorImpl…
at java.lang.reflect.Method.invoke(Method.j…
at com.sun.tools.javadoc.DocletInvoker.invo…
at com.sun.tools.javadoc.DocletInvoker.star…
at com.sun.tools.javadoc.Start.parseAndExec…
at com.sun.tools.javadoc.Start.begin(Start.…
at com.sun.tools.javadoc.Main.execute(Main.…
at com.sun.tools.javadoc.Main.main(Main.jav…
com.sun.tools.doclets.internal.toolkit…
at com.sun.tools.doclets.formats.html.HtmlD…

I believe it stopped this error around the time I started telling the wizard to put the html files into a folder named docs in my workspace, alas this folder just has one empty html file in by the name of one of the classes in my project (usually Stack.html or Entry.html)

Also I unfortunately deleted the TestClass class as it was just a test, but here's the Stack class that I cannot generate javadoc for:

/**
 * Provides the Classes necessary to create a Stack data structure.
 */
package courseworkone;

import java.util.ArrayList;

/**
 * Created on 22 Oct, 2012.
 *
 * @author James
 */
public class Stack {
/**
 * The dynamic array into which elements of the Stack are held.
 */
private ArrayList<Entry> array;
/**
 * The size of the Stack (The number of elements on the stack).
 */
private int size;

/**
 * Constructs an empty Stack with an initial size of 0.
 */
public Stack() {
    array = new ArrayList<Entry>();
    size = 0;
}

/**
 * Checks the number of elements in the stack.
 *
 * @return the number of elements in the stack
 */
public final int size() {
    return size;
}

/**
 * Adds an element to the stack, and increases the stack size by 1.
 *
 * @param i
 *            The element to be added to the stack
 */
public final void push(final Entry i) {
    // adds the Entry to the stack
    array.add(i);
    // increments the stack size by one
    size++;
}

/**
 * Returns the element on the top of the stack.
 *
 * @return the top element in the stack
 */
public final Entry top() {
    // gets the element at the end of the ArrayList (top element) and
    // returns it
    return array.get(size - 1);
}

/**
 * Returns the element on the top of the stack and then removes that element
 * from the stack.
 *
 * @return the top element in the stack
 */
public final Entry pop() {
    // stores the element at the end of the ArrayList in a temporary
    // variable
    Entry mostRecentEntry = array.get(size - 1);
    // removes the element from the end of the ArrayList
    array.remove(size - 1);
    // decrements the size of the stack by one
    size--;
    // returns the element at the end of the ArrayList
    return mostRecentEntry;
}
}

Ive also used the javadoc wizard to save the settings of the javadoc export as an Ant script, and here are its contents:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project default="javadoc">
    <target name="javadoc">
        <javadoc access="public" author="true" classpath="C:\Users\James\Documents\Eclipse\plugins\org.hamcrest.core_1.1.0.v20090501071000.jar;C:\Users\James\Documents\Eclipse\plugins\org.junit_4.10.0.v4_10_0_v20120426-0900\junit.jar" destdir="C:\Users\James\workspace\docs" doctitle="Stack Implementation" nodeprecated="false" nodeprecatedlist="false" noindex="false" nonavbar="false" notree="false" packagenames="courseworkone,testcourseworkone" source="1.7" sourcepath="src;test" splitindex="true" use="true" version="true"/>
    </target>
</project>

Here is the Console Output from the Ant Build Run:

Apache Ant(TM) version 1.8.3 compiled on February 26 2012
Apache Ant(TM) version 1.8.3 compiled on February 26 2012
Setting ro project property: ant.file ->     C:\Users\James\workspace\2ndYearWork\SoftEngCoursework1\javadoc.xml
Buildfile: C:\Users\James\workspace\2ndYearWork\SoftEngCoursework1\javadoc.xml
Adding reference: ant.projectHelper
Adding reference: ant.parsing.context
Adding reference: ant.targets
parsing buildfile C:\Users\James\workspace\2ndYearWork\SoftEngCoursework1\javadoc.xml with URI = file:/C:/Users/James/workspace/2ndYearWork/SoftEngCoursework1/javadoc.xml
Setting ro project property: ant.project.default-target -> javadoc
Project base dir set to: C:\Users\James\workspace\2ndYearWork\SoftEngCoursework1
 +Target: 
 +Target: javadoc
Adding reference: ant.LocalProperties
Setting ro project property: ant.project.invoked-targets -> javadoc
Adding reference: eclipse.ant.targetVector
Build sequence for target(s) `javadoc' is [javadoc]
Complete build sequence is [javadoc, ]
javadoc:
parsing buildfile     jar:file:/C:/Users/James/Documents/Eclipse/plugins/org.apache.ant_1.8.3.v20120321-1730/lib/ant.jar!/org/apache/tools/ant/antlib.xml with URI =     jar:file:/C:/Users/James/Documents/Eclipse/plugins/org.apache.ant_1.8.3.v20120321-1730/lib/ant.jar!/org/apache/tools/ant/antlib.xml from a zip file
  [javadoc] scanning C:\Users\James\workspace\2ndYearWork\SoftEngCoursework1\src for packages.
dirset: Setup scanner in dir      C:\Users\James\workspace\2ndYearWork\SoftEngCoursework1\src with patternSet{ includes: [courseworkone, testcourseworkone] excludes: [] }
  [javadoc] scanning C:\Users\James\workspace\2ndYearWork\SoftEngCoursework1\test for packages.
dirset: Setup scanner in dir     C:\Users\James\workspace\2ndYearWork\SoftEngCoursework1\test with patternSet{ includes: [courseworkone, testcourseworkone] excludes: [] }
  [javadoc] Generating Javadoc
  [javadoc] Executing 'C:\Program Files (x86)\Java\jdk1.7.0_03\bin\javadoc.exe' with arguments:
  [javadoc] '-public'
  [javadoc] '-d'
  [javadoc] 'C:\Users\James\workspace\docs'
  [javadoc] '-splitindex'
  [javadoc] '-use'
  [javadoc] '-doctitle'
  [javadoc] 'Stack Implementation'
  [javadoc] '-classpath'
  [javadoc]     'C:\Users\James\Documents\Eclipse\plugins\org.hamcrest.core_1.1.0.v20090501071000.jar;C:\Users\James\Documents\Eclipse\plugins\org.junit_4.10.0.v4_10_0_v20120426-0900\junit.jar'
  [javadoc] '-version'
  [javadoc] '-author'
  [javadoc] '-sourcepath'
  [javadoc]     'C:\Users\James\workspace\2ndYearWork\SoftEngCoursework1\src;C:\Users\James\workspace\2ndYearWork\SoftEngCoursework1\test'
  [javadoc] '-source'
  [javadoc] '1.7'
  [javadoc] 'courseworkone'
  [javadoc] 'testcourseworkone'
  [javadoc] 
  [javadoc] The ' characters around the executable and arguments are
  [javadoc] not part of the command.
  [javadoc] Javadoc execution
Execute:Java13CommandLauncher: Executing 'C:\Program Files (x86)\Java\jdk1.7.0_03\bin\javadoc.exe' with arguments:
'-public'
'-d'
'C:\Users\James\workspace\docs'
'-splitindex'
'-use'
'-doctitle'
'Stack Implementation'
'-classpath'
'C:\Users\James\Documents\Eclipse\plugins\org.hamcrest.core_1.1.0.v20090501071000.jar;C:\Users\James\Documents\Eclipse\plugins\org.junit_4.10.0.v4_10_0_v20120426-0900\junit.jar'
'-version'
'-author'
'-sourcepath'
'C:\Users\James\workspace\2ndYearWork\SoftEngCoursework1\src;C:\Users\James\workspace\2ndYearWork\SoftEngCoursework1\test'
'-source'
'1.7'
'courseworkone'
'testcourseworkone'

The ' characters around the executable and arguments are
not part of the command.
  [javadoc] Loading source files for package courseworkone...
  [javadoc] Loading source files for package testcourseworkone...
  [javadoc] Constructing Javadoc information...
  [javadoc] Standard Doclet version 1.7.0_03
  [javadoc] Building tree for all the packages and classes...
  [javadoc] java.lang.IllegalArgumentException
  [javadoc]     at sun.net.www.ParseUtil.decode(ParseUtil.java:202)
  [javadoc]     at sun.misc.URLClassPath$FileLoader.<init>(URLClassPath.java:1016)
  [javadoc]     at sun.misc.URLClassPath$3.run(URLClassPath.java:357)
  [javadoc]     at sun.misc.URLClassPath$3.run(URLClassPath.java:352)
  [javadoc]     at java.security.AccessController.doPrivileged(Native Method)
  [javadoc]     at sun.misc.URLClassPath.getLoader(URLClassPath.java:351)
  [javadoc]     at sun.misc.URLClassPath.getLoader(URLClassPath.java:328)
  [javadoc]     at sun.misc.URLClassPath.findResource(URLClassPath.java:171)
  [javadoc]     at java.net.URLClassLoader$2.run(URLClassLoader.java:551)
  [javadoc]     at java.net.URLClassLoader$2.run(URLClassLoader.java:549)
  [javadoc]     at java.security.AccessController.doPrivileged(Native Method)
  [javadoc]     at java.net.URLClassLoader.findResource(URLClassLoader.java:548)
  [javadoc]     at java.lang.ClassLoader.getResource(ClassLoader.java:1138)
  [javadoc]     at java.net.URLClassLoader.getResourceAsStream(URLClassLoader.java:227)
  [javadoc]     at javax.xml.parsers.SecuritySupport$4.run(SecuritySupport.java:94)
  [javadoc]     at java.security.AccessController.doPrivileged(Native Method)
  [javadoc]     at javax.xml.parsers.SecuritySupport.getResourceAsStream(SecuritySupport.java:87)
  [javadoc]     at javax.xml.parsers.FactoryFinder.findJarServiceProvider(FactoryFinder.java:248)
  [javadoc]     at javax.xml.parsers.FactoryFinder.find(FactoryFinder.java:221)
  [javadoc]     at javax.xml.parsers.SAXParserFactory.newInstance(SAXParserFactory.java:126)
  [javadoc]     at com.sun.tools.doclets.internal.toolkit.builders.LayoutParser.parseXML(LayoutParser.java:88)
  [javadoc]     at com.sun.tools.doclets.internal.toolkit.builders.ClassBuilder.build(ClassBuilder.java:117)
  [javadoc]     at com.sun.tools.doclets.formats.html.HtmlDoclet.generateClassFiles(HtmlDoclet.java:186)
  [javadoc]     at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.generateClassFiles(AbstractDoclet.java:183)
  [javadoc]     at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.startGeneration(AbstractDoclet.java:125)
  [javadoc]     at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.start(AbstractDoclet.java:83)
  [javadoc]     at com.sun.tools.doclets.formats.html.HtmlDoclet.start(HtmlDoclet.java:63)
  [javadoc]     at com.sun.tools.doclets.standard.Standard.start(Standard.java:39)
  [javadoc]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  [javadoc]     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
  [javadoc]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  [javadoc]     at java.lang.reflect.Method.invoke(Method.java:601)
  [javadoc]     at com.sun.tools.javadoc.DocletInvoker.invoke(DocletInvoker.java:280)
  [javadoc]     at com.sun.tools.javadoc.DocletInvoker.start(DocletInvoker.java:160)
  [javadoc]     at com.sun.tools.javadoc.Start.parseAndExecute(Start.java:397)
  [javadoc]     at com.sun.tools.javadoc.Start.begin(Start.java:167)
  [javadoc]     at com.sun.tools.javadoc.Main.execute(Main.java:59)
  [javadoc]     at com.sun.tools.javadoc.Main.main(Main.java:49)
  [javadoc] com.sun.tools.doclets.internal.toolkit.util.DocletAbortException
  [javadoc]     at com.sun.tools.doclets.internal.toolkit.builders.LayoutParser.parseXML(LayoutParser.java:95)
  [javadoc]     at com.sun.tools.doclets.internal.toolkit.builders.ClassBuilder.build(ClassBuilder.java:117)
  [javadoc]     at com.sun.tools.doclets.formats.html.HtmlDoclet.generateClassFiles(HtmlDoclet.java:186)
  [javadoc]     at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.generateClassFiles(AbstractDoclet.java:183)
  [javadoc]     at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.startGeneration(AbstractDoclet.java:125)
  [javadoc]     at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.start(AbstractDoclet.java:83)
  [javadoc]     at com.sun.tools.doclets.formats.html.HtmlDoclet.start(HtmlDoclet.java:63)
  [javadoc]     at com.sun.tools.doclets.standard.Standard.start(Standard.java:39)
  [javadoc]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  [javadoc]     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
  [javadoc]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  [javadoc]     at java.lang.reflect.Method.invoke(Method.java:601)
  [javadoc]     at com.sun.tools.javadoc.DocletInvoker.invoke(DocletInvoker.java:280)
  [javadoc]     at com.sun.tools.javadoc.DocletInvoker.start(DocletInvoker.java:160)
  [javadoc]     at com.sun.tools.javadoc.Start.parseAndExecute(Start.java:397)
  [javadoc]     at com.sun.tools.javadoc.Start.begin(Start.java:167)
  [javadoc]     at com.sun.tools.javadoc.Main.execute(Main.java:59)
  [javadoc]     at com.sun.tools.javadoc.Main.main(Main.java:49)
  [javadoc] com.sun.tools.doclets.internal.toolkit.util.DocletAbortException
  [javadoc]     at com.sun.tools.doclets.formats.html.HtmlDoclet.generateClassFiles(HtmlDoclet.java:190)
  [javadoc]     at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.generateClassFiles(AbstractDoclet.java:183)
  [javadoc]     at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.startGeneration(AbstractDoclet.java:125)
  [javadoc]     at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.start(AbstractDoclet.java:83)
  [javadoc]     at com.sun.tools.doclets.formats.html.HtmlDoclet.start(HtmlDoclet.java:63)
  [javadoc]     at com.sun.tools.doclets.standard.Standard.start(Standard.java:39)
  [javadoc]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  [javadoc]     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
  [javadoc]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  [javadoc]     at java.lang.reflect.Method.invoke(Method.java:601)
  [javadoc]     at com.sun.tools.javadoc.DocletInvoker.invoke(DocletInvoker.java:280)
  [javadoc]     at com.sun.tools.javadoc.DocletInvoker.start(DocletInvoker.java:160)
  [javadoc]     at com.sun.tools.javadoc.Start.parseAndExecute(Start.java:397)
  [javadoc]     at com.sun.tools.javadoc.Start.begin(Start.java:167)
  [javadoc]     at com.sun.tools.javadoc.Main.execute(Main.java:59)
  [javadoc]     at com.sun.tools.javadoc.Main.main(Main.java:49)
  [javadoc] Generating C:\Users\James\workspace\docs\courseworkone\Entry.html...
BUILD SUCCESSFUL
Total time: 5 seconds

I have no idea why I cannot generate javadocs properly

Any ideas?

解决方案

I checked your code/doc and it seems ok to me. I tested with different version of JavaDoc. So i checked for the specific exception. I found this: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6219854.

They suggest to remove classpath as enviroment variable. Since you are using Eclipse, building and generating javadoc does not require further configuration outside the IDE. Check your variables and remove any unnecessary configuration.

这篇关于Eclipse JavaDoc生成与IllegalArgumentException失败?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆