Как я могу включить более одного пути в пользовательский путь доклета? - PullRequest
2 голосов
/ 11 февраля 2009

У меня есть доклет javadoc, для которого требуется дополнительный файл jar, чтобы он находился в пути к классу доклета. Чтобы запустить доклет из командной строки, я делаю что-то вроде этого:

java com.sun.tools.javadoc.Main -doclet myPackage.myDoclet -docletpath /path/to/doclet/classes

Когда я запускаю его, он находит доклет на пути и выполняет его, но доклет использует дополнительный jar, который должен находиться в пути к классам, поэтому в итоге я получаю ClassNotFoundException.

Когда я изменяю командную строку на это:

java com.sun.tools.javadoc.Main -doclet myPackage.myDoclet -docletpath /path/to/doclet/classes:/path/to/some.jar

Он больше не находит доклет (javadoc: error - Cannot find doclet class com.adventact.si.workflow.javadoc.ListClass). Итак, похоже, что аргумент doclet не принимает список путей, а только один.

(обратите внимание, что эти командные строки не являются полными - я не показываю, как установить путь к классу, поскольку он не имеет отношения к проблеме с docletpath и действительно является спамом.)

Как вы можете обойти это?

1 Ответ

4 голосов
/ 11 февраля 2009

Документация для Javadoc гласит, что список путей разрешен. Убедитесь, что вы используете правильный символ разделения пути, либо ';' или ':' в зависимости от того, используете ли вы Windows или UNIX (соответственно).

ПРИМЕЧАНИЕ. Если вы действительно используете java, а не javadoc для выполнения вашего доклета, то проверьте реализацию вашего класса. -docletpath не является стандартным параметром для исполняемого файла java, поэтому должен интерпретироваться вашей реализацией doclet. Однако, если вы используете javadoc, то документация, на которую я указал выше, гласит:

Если classpathlist содержит несколько путей или файлов JAR, они должны быть разделены с двоеточием (:) в Solaris и точкой с запятой (;) в Windows.

...