Как создать документацию JavaDoc для классов в файле .jar, для которого у меня нет исходного кода?

Я хочу создать API для всех классов, которые есть в моем приложении Java 1.6. Он должен выглядеть как обычная документация API Java 1.5.

У меня нет исходного кода. У меня есть файлы классов в файле jar.

Ответы

Ответ 1

Вы не можете произвести Javadoc из банок файлов классов, даже не рудиментарного Javadoc. Вы можете генерировать Javadoc только из исходных файлов, потому что там живет Javadoc.

Ответ 2

Я не использовал его, но этот проект с открытым исходным кодом утверждает, что он создает документы из java файлов или jar файлов:

http://classdoc.sourceforge.net/

Ответ 3

Кто меняет вопрос? У меня нет исходного кода. У меня есть файлы классов в файле jar. Purushotham 47 мин назад

У вас нет исходных файлов? Ну, тогда вам, наверное, не повезло. Возможно, какой-то неясный плагин похож на огромную базу данных Eclipse, которая может делать это из файлов классов, но даже тогда вы будете получать сигнатуры методов, а не комментарии.


Однако, если это ваш проект, который вы написали, вы можете сгенерировать JavaDoc в своей среде IDE. Для Eclipse do Project > Сгенерировать JavaDoc. В NetBeans щелкните правой кнопкой мыши ваш проект и выберите "Создать JavaDoc".

Если вы хотите включить свои зависимости, то это очень плохая идея. Всегда ссылайтесь на JavaDocs ваших зависимостей, никогда не включайте его в свой. Если вы не потеряете рассудок, увидев массивную стену классов из Large Overly Framework X, просто сохраните их отдельно. Если я хочу прочитать JavaDoc в вашем проекте, я хочу прочитать его только по вашему проекту, а не по slf4j.

Ответ 4

Вы можете использовать команду javap для любого класса в вашем пути к классам. Это не приведет к созданию файлов Javadoc, но это позволит вам увидеть, что предоставляет класс.

Ex...

javap java.lang.String выводит следующий вывод

public final class java.lang.String implements java.io.Serializable, java.lang.Comparable<java.lang.String>, java.lang.CharSequence {
  public static final java.util.Comparator<java.lang.String> CASE_INSENSITIVE_ORDER;
  public java.lang.String();
  public java.lang.String(java.lang.String);
  public java.lang.String(char[]);
  public java.lang.String(char[], int, int);

... и после кучи конструкторов существуют другие методы...

  public int length();
  public boolean isEmpty();
  public char charAt(int);
  public int codePointAt(int);

И вы также можете показать, что это тоже самое, но это, вероятно, наиболее полезно.

Не совсем то, что вы ищете, но если у вас просто есть кувшин с кучей классов, это может быть вашим лучшим вариантом.