Mam zamiar utworzyć niestandardowy generator Javadoc za pomocą Doclet
, ale mam pewne problemy.Problemy z generowaniem niestandardowego javadoc; "nie mogę znaleźć docletu"
Podążam za the official documentation i początkowo miałem problem z dołączeniem do mojego projektu pliku tools.jar
, ale udało mi się to naprawić.
Mój problem jest teraz, że po uruchomieniu tego polecenia ...
javadoc -doclet ListClass -docletpath . MyClass.java
... Dostaję komunikat ...
javadoc: Błąd - Nie można odnaleźć doclet klasy listclass
Jak już wspomniałem, głównie śledzę tutoriale z oficjalnej dokumentacji, ale oto mój kod źródłowy.
ListClass.java
:
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;
}
}
I MyClass.java
:
/**
* Documentation for my class
*/
public class MyClass {
public static void main(String[] args) {
}
/**
* Documentation for my static void method
*
* @param param This is the parameter it takes in
*/
public static void myStaticVoidMethod(String param) {
}
}
Więc co pytam to dlaczego ja dostaję błąd napisałem powyżej. Jeśli ktoś byłby w stanie dostarczyć bardziej wszechstronnego poradnika na temat tego, jak działa Doclet
, to byłoby świetnie.
Uwaga: używam IntelliJ IDE do mojego projektu. Oto moja struktura katalogów:
- .idea
- ...
- z
- ...
- src
- ListClass.java
- MyClass.java
- JavadocGenerator.iml
Dzięki. Uruchamianie 'javac -d. ListClass.java -cp C:/Program Files/Java/jdk1.8.0_66/lib/tools.jar' daje mi 'javac: file not found: ListClass.java', więc zmieniłem go na' ... src/ListClass .java ... '(zobacz moje zaktualizowane pytanie z hierarchią katalogów). Uruchomienie tego nowego polecenia (z 'src /') daje mi błąd 'javac: invalid flag: Files/Java/jdk1.8.0_66/lib/tools.jar'. –
Jesteś całkiem blisko z tym, co masz. Myślę, że wystarczy umieścić ścieżkę w cudzysłowie i upewnić się, że robisz javac i javadoc z poprawnych katalogów .. zobacz moją aktualizację. – heisbrandon
Dziękujemy - zaktualizowana odpowiedź rozwiązała mój problem. –