2016-04-21 5 views
5

मुझे Doclet का उपयोग कर एक कस्टम जावाडोक जेनरेटर बनाने में जाना है, लेकिन मैं कुछ मुद्दों पर चल रहा हूं।कस्टम जावाडोक उत्पन्न करने में समस्या; 'डॉकलेट नहीं मिल सका'

मैं the official documentation का अनुसरण कर रहा हूं और शुरुआत में tools.jar फ़ाइल को मेरी परियोजना में शामिल करने में परेशानी थी, लेकिन मैंने इसे ठीक करने में कामयाब रहे।

मेरे मुद्दा अब है कि इस आदेश को चलाने के बाद ...

javadoc -doclet ListClass -docletpath . MyClass.java 

... मैं संदेश प्राप्त हो रहा ...

जावाडोक: त्रुटि - नहीं doclet वर्ग ListClass मिल सकता है

जैसा कि मैंने कहा, मैं ज्यादातर आधिकारिक दस्तावेज से ट्यूटोरियल का पालन कर रहा हूं, लेकिन संदर्भ के लिए मेरा कोड यहां है।

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

} 

और 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) { 

    } 

} 

तो क्यों मैं त्रुटि मैं ऊपर पोस्ट हो रही है कि मैं क्या पूछ रहा हूँ है। अगर कोई Doclet काम करता है जो कि बहुत अच्छा होगा, तो एक और व्यापक मार्गदर्शिका प्रदान करने में सक्षम था।


नोट: मैं अपने प्रोजेक्ट के लिए इंटेलिजे आईडीई का उपयोग कर रहा हूं। यहाँ मेरी निर्देशिका संरचना है:

  • .idea
    • ... बाहर
    • ...
  • src
    • ListClass.java
    • MyClass.java
  • JavadocGenerator.iml

उत्तर

1

आप अपने ListClass फ़ाइल संकलन करने की जरूरत है। की तरह कुछ:

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

Doclet कक्षाएं उपकरण जार का हिस्सा हैं, तो आप अपने संकलन समय निर्भरता के रूप में इसे शामिल करने की आवश्यकता होगी।

फिर अपने आदेश

javadoc -doclet ListClass -docletpath . MyClass.java 

काम करना चाहिए।

संपादित

आप परियोजना संरचना के लिए, आप रूट निर्देशिका से संकलन कर रहे हैं, उनके उपनिर्देशिका के माध्यम से अपनी फाइल को संदर्भित करने के लिए यकीन है कि यकीन है कि किसी भी निरपेक्ष खिड़कियों रास्तों डबल-कोटेड की गई हैं, और:

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

इस परियोजना की जड़ में एक संकलित ListClass फ़ाइल बना सकेगी, और वहां से अपने जावाडोक आदेश का उपयोग करें:

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

प्रोजेक्ट की जड़ में विरोध के रूप में आपके संकलित वर्गों को रखने के लिए कक्षा निर्देशिका बनाना बेहतर होगा, लेकिन मैं आपके द्वारा प्रदान की गई संरचना के साथ काम कर रहा हूं। अधिक जानकारी के लिए javac और javadoc के लिए दस्तावेज़ देखें।

+0

धन्यवाद। चल रहा है 'javac -d। ListClass.java -cp सी:/प्रोग्राम फ़ाइलें/जावा/jdk1.8.0_66/lib/tools.jar' मुझे 'javac देता है: फ़ाइल नहीं मिली: ListClass.java', इसलिए मैंने इसे' ... src/ListClass में बदल दिया .java ... '(निर्देशिका पदानुक्रम के साथ मेरा अद्यतन प्रश्न देखें)। अब यह नया आदेश चला रहा है ('src /' के साथ) मुझे त्रुटि देता है 'javac: अवैध ध्वज: फ़ाइलें/जावा/jdk1.8.0_66/lib/tools.jar'। –

+0

आप जो भी हैं उसके साथ आप बहुत करीब हैं। मुझे लगता है कि आपको केवल उद्धरणों में पथ डालना होगा, और सुनिश्चित करें कि आप सही निर्देशिकाओं से जावैक और जावाडोक निष्पादित कर रहे हैं .. मेरा अपडेट देखें। – heisbrandon

+0

धन्यवाद - आपके अपडेट किए गए उत्तर ने मेरी समस्या हल की। –

संबंधित मुद्दे