2011-08-10 55 views
7

我正在編寫一個Java應用程序,它可以讓我編譯一個完全基於它的文件結構的Java項目,這樣我就可以在沒有IDE的情況下編寫代碼並進行編譯。我目前遇到的問題是我想在編譯時自動生成javadoc,儘管在Java 6提供了一個JavaCompiler對象來處理時,我找不到使用javadoc命令的方法。如何使用Java生成javadoc?

如何使用Java代碼爲我的項目生成javadoc html?

+1

爲什麼?目前已經有成熟的Java構建工具可以完成所有這些工作以及更多。使用其中之一,避免爲自己和/或接管您的代碼的人員創造巨大的技術債務。 –

+0

我不會爲此被告知,但是: Ant/Maven/Gradle都需要一個配置文件來組成。如果你製作了一個不需要的實用程序,那麼這裏有一個明確的用例:-) – Rich

回答

7

以防萬一您不知道Apache AntApache Maven都是存在的工具,可以實現與您正在編寫的內容類似的目標(無IDE編譯)。

他們都建立在支持生成javadoc。螞蟻語法如下:

<!-- publish javadoc --> 
<target name="javadoc" description="Creates javadoc for IMP."> 
     <delete dir="${web-javadoc}"/> 
     <javadoc sourcepath="${source}" 
       defaultexcludes="no" 
       destdir="${web-javadoc}" 
       author="true" 
       version="true" 
       use="true" 
       windowtitle="IMP: Integrated Mechanisms Program" 
       overview="${source}/overview.html" 
       classpathref="debug.classpath" 
       stylesheetfile="${javadoc-theme}/stylesheet.css" 
     /> 

     <copy file="${javadoc-theme}/javadoc.jpg" tofile="${web-javadoc}/javadoc.jpg"/> 
</target> 

如果你真的想生成它自己要使用的Doclet API

import com.sun.javadoc.*; 

public class ListClass { 
    public static boolean start(RootDoc root) { 
     ClassDoc[] classes = root.classes(); 
     for (int i = 0; i < classes.length; ++i) { 
      System.out.println(classes[i]); 
     } 
     return true; 
    } 
} 
+0

非常徹底。即使你認爲這是愚蠢的,我很感謝你給我答案。 –

+0

只是想爲您節省一些時間,如果這些工具滿足您的需求。沒想到這是愚蠢的。 – JohnKlehm

1
+0

爲什麼downvote? –

+0

答案並不存在真正的問題,只是miku的答案稍好一點(而且提前了幾分鐘),並且我想確保它在答案之前排名爲a。對不起,downvote是做到這一點的唯一方法。 –

+2

@Paŭlo:我明白了。據我的理解,這不是一個很好的使用downvoting。 Downvotes用於標記有害或不正確的答案。 –

5

在終端中輸入javadoc - 它會給你一個很好的選項列表。簡單:

javadoc -d your_output_directory -classpath your_classpath -sourcepath your_sourcefile_dir 
0

有一個javadoc命令,它自帶的JDK(在UNIX平臺上的人的javadoc)

但是,還有更好的方法。你如何編寫代碼?如果您使用的是自動構建工具,如Ant或Maven,你可以添加一個javadoc任務自動生成的javadoc每當你編譯代碼

http://ant.apache.org/manual/Tasks/javadoc.html

關於螞蟻的詳細信息(其它工具也有類似的功能,請參閱您的工具文檔以獲取更多信息)

這就是我所做的,它的出色表現。