2016-04-21 16 views
5

Doclet kullanarak özel bir Javadoc üreteci oluşturmaya gidiyorum, ancak bazı sorunlara rastlıyorum.Özel javadoc oluşturma ile ilgili sorun; 'doclet bulamıyor'

the official documentation izliyorum ve başlangıçta projemde tools.jar dosyasını dahil etme konusunda sorun vardı, ancak bunu düzeltmeyi başardım.

Sorunum şimdi bu komutu çalıştırdıktan sonra ...

javadoc -doclet ListClass -docletpath . MyClass.java 

... Ben mesajı alıyorum ...

javadoc şudur: Hata - doclet sınıf listclass bulamıyor

Dediğim gibi, çoğunlukla resmi belgelerden dersleri takip ettim, ancak burada referans kodum var.

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; 
    } 

} 

Ve MyClass.java:

ben yukarıdaki haberi hatası alıyorum neden
/** 
* 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) { 

    } 

} 

Peki soruyorum olduğunu. Birisi, Doclet'un nasıl işe yarayacağını daha kapsamlı bir kılavuz sunabilseydi, bu da harika olurdu.


Not: Projem için IntelliJ IDE kullanıyorum. İşte benim dizin yapısı şöyledir:

    • üzerinden

      • .idea
        • ... ...
      • src
        • ListClass.java
        • MyClass.java
      • JavadocGenerator.iml
  • cevap

    1

    Sen listclass dosyasını derlemek gerekir. gibi bir şey:

    javac -d . ListClass.java -cp /path/to/tools.jar 
    

    Doclet sınıfların araçları kavanoz parçasıdır, böylece derleme zamanı bağımlılık olarak dahil gerekir.

    Sonra komut

    javadoc -doclet ListClass -docletpath . MyClass.java 
    

    çalışmalıdır.Kök dizinden derleme eğer

    düzenlemek

    proje yapısı için, onların alt dizinleri aracılığıyla başvuru dosyalarına emin olun ve herhangi bir mutlak pencere yolları çift tırnaklı olduğundan emin olun:

    javac -d . ./src/ListClass.java -cp "C:/Program Files/Java/jdk1.8.0_66/lib/tools.jar" 
    

    Bu projenin kökünde bir derlenmiş listclass dosyası yaratacak ve oradan javadoc komutu kullanın:

    javadoc -doclet ListClass -docletpath . ./src/MyClass.java 
    

    Derlenmiş sınıflarınızı projenin kök dizinine göre yerleştirmek için bir sınıf dizini oluşturmak daha iyi olurdu, ancak sağladığınız yapıyla çalışıyorum. Daha fazla bilgi için javac ve javadoc belgelerine bakın.

    +0

    Teşekkürler. Koşu javac -d. ListClass.java -cp C:/Program Files/Java/jdk1.8.0_66/lib/tools.jar' bana javac verir: dosya bulunamadı: ListClass.java', bu yüzden değiştirdim ... src/ListClass .java ... '(dizin hiyerarşisiyle güncellenmiş soruma bakın). Şimdi bu yeni komutu (src/'ile) çalıştırarak bana hata javac: geçersiz bayrağı verir: Dosyalar/Java/jdk1.8.0_66/lib/tools.jar'. –

    +0

    Sahip olduğunuzla oldukça yakınsınız. Bence yolu sadece tırnak içine almalısın ve doğru dizinlerden javac ve javadoc'u çalıştırdığına emin ol. – heisbrandon

    +0

    Teşekkürler - güncellenmiş cevabınız sorunumu çözdü. –

    İlgili konular