PDA

View Full Version : Problemi con javadoc


ipv4
29-03-2007, 12:48
Se provo creare la documentazione con javadoc ottengo un'eccezione java.lang.IllegalArgumentException;
Il commento è scritto in maniera corretta tra /** e */.

cosa può essere? Quello che ottengo è un file .html vuoto

lovaz
29-03-2007, 13:08
Devi essere piu' preciso, posta tutto l'output

ipv4
29-03-2007, 13:19
C:\Documents and Settings\Desktop\javadoc Program.java
Loading source file Program.java...
Constructing Javadoc information...
Standard Doclet version 1.6.0
Building tree for all the packages and classes...
Generating Program.html...
java.lang.IllegalArgumentException
at sun.net.www.ParseUtil.decode(ParseUtil.java:189)
at sun.misc.URLClassPath$FileLoader.<init>(URLClassPath.java:953)
at sun.misc.URLClassPath$3.run(URLClassPath.java:326)
at java.security.AccessController.doPrivileged(Native Method)
at sun.misc.URLClassPath.getLoader(URLClassPath.java:320)
at sun.misc.URLClassPath.getLoader(URLClassPath.java:297)
at sun.misc.URLClassPath.findResource(URLClassPath.java:144)
at java.net.URLClassLoader$2.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findResource(URLClassLoader.java:359)
at java.lang.ClassLoader.getResource(ClassLoader.java:977)
at java.lang.ClassLoader.getResourceAsStream(ClassLoader.java:1159)
at javax.xml.parsers.SecuritySupport$4.run(SecuritySupport.java:96)
at java.security.AccessController.doPrivileged(Native Method)
at javax.xml.parsers.SecuritySupport.getResourceAsStream(SecuritySupport
.java:89)
at javax.xml.parsers.FactoryFinder.findJarServiceProvider(FactoryFinder.
java:248)
at javax.xml.parsers.FactoryFinder.find(FactoryFinder.java:221)
at javax.xml.parsers.SAXParserFactory.newInstance(SAXParserFactory.java:
128)
at com.sun.tools.doclets.internal.toolkit.builders.LayoutParser.parseXML
(LayoutParser.java:72)
at com.sun.tools.doclets.internal.toolkit.builders.ClassBuilder.build(Cl
assBuilder.java:108)
at com.sun.tools.doclets.formats.html.HtmlDoclet.generateClassFiles(Html
Doclet.java:155)
at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.generateClassFi
les(AbstractDoclet.java:177)
at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.generateClassFi
les(AbstractDoclet.java:161)
at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.startGeneration
(AbstractDoclet.java:106)
at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.start(AbstractD
oclet.java:64)
at com.sun.tools.doclets.formats.html.HtmlDoclet.start(HtmlDoclet.java:4
2)
at com.sun.tools.doclets.standard.Standard.start(Standard.java:23)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.tools.javadoc.DocletInvoker.invoke(DocletInvoker.java:215)
at com.sun.tools.javadoc.DocletInvoker.start(DocletInvoker.java:91)
at com.sun.tools.javadoc.Start.parseAndExecute(Start.java:340)
at com.sun.tools.javadoc.Start.begin(Start.java:128)
at com.sun.tools.javadoc.Main.execute(Main.java:41)
at com.sun.tools.javadoc.Main.main(Main.java:31)
com.sun.tools.doclets.internal.toolkit.util.DocletAbortException
at com.sun.tools.doclets.internal.toolkit.builders.LayoutParser.parseXML
(LayoutParser.java:79)
at com.sun.tools.doclets.internal.toolkit.builders.ClassBuilder.build(Cl
assBuilder.java:108)
at com.sun.tools.doclets.formats.html.HtmlDoclet.generateClassFiles(Html
Doclet.java:155)
at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.generateClassFi
les(AbstractDoclet.java:177)
at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.generateClassFi
les(AbstractDoclet.java:161)
at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.startGeneration
(AbstractDoclet.java:106)
at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.start(AbstractD
oclet.java:64)
at com.sun.tools.doclets.formats.html.HtmlDoclet.start(HtmlDoclet.java:4
2)
at com.sun.tools.doclets.standard.Standard.start(Standard.java:23)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.tools.javadoc.DocletInvoker.invoke(DocletInvoker.java:215)
at com.sun.tools.javadoc.DocletInvoker.start(DocletInvoker.java:91)
at com.sun.tools.javadoc.Start.parseAndExecute(Start.java:340)
at com.sun.tools.javadoc.Start.begin(Start.java:128)
at com.sun.tools.javadoc.Main.execute(Main.java:41)
at com.sun.tools.javadoc.Main.main(Main.java:31)
com.sun.tools.doclets.internal.toolkit.util.DocletAbortException
at com.sun.tools.doclets.formats.html.HtmlDoclet.generateClassFiles(Html
Doclet.java:159)
at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.generateClassFi
les(AbstractDoclet.java:177)
at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.generateClassFi
les(AbstractDoclet.java:161)
at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.startGeneration
(AbstractDoclet.java:106)
at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.start(AbstractD
oclet.java:64)
at com.sun.tools.doclets.formats.html.HtmlDoclet.start(HtmlDoclet.java:4
2)
at com.sun.tools.doclets.standard.Standard.start(Standard.java:23)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.tools.javadoc.DocletInvoker.invoke(DocletInvoker.java:215)
at com.sun.tools.javadoc.DocletInvoker.start(DocletInvoker.java:91)
at com.sun.tools.javadoc.Start.parseAndExecute(Start.java:340)
at com.sun.tools.javadoc.Start.begin(Start.java:128)
at com.sun.tools.javadoc.Main.execute(Main.java:41)
at com.sun.tools.javadoc.Main.main(Main.java:31)

lovaz
29-03-2007, 13:26
Potrebbe essere un problema del file sorgente, potresti postare anche quello?

ipv4
29-03-2007, 13:40
import java.io.*;
import java.util.*;
/**
*@author xxx
*
*@version 1.0
*
*Nome progetto:populationMonitor
*Descrizione: simula il comportamento di un semplice sistema di controllo remoto di flussi di individui.
* Il sistema opera in un territorio T diviso in M aree senza intersezione,
* ad ognuna delle quali afferisca un certo insieme di individui.
*La classe program chiede all'utente la modalità di visualizzazione del populationMonitor
*Inserire a console o console o grafica come richiesto
* Se viene scelta la modalità console l'applicazione legge i dati dal file di testo allegato
* Se la scelta ricade su grafica si potrà decidere l'input da File o da Grafica
*/
public class Program
{

private static String mod_gioco = "";
public static void main(String[] args) throws IOException
{
System.out.println("***********************************************************************");
System.out.println("*****************BENVENUTO AL SISTEMA DI MONITORAGGIO******************");
System.out.println("***********************************************************************\n");
System.out.println("Modalita' console o grafica?\n");
InputStreamReader reader = new InputStreamReader(System.in);
BufferedReader modalita = new BufferedReader(reader);
try
{
mod_gioco = modalita.readLine();
}
catch (IOException e)
{
System.out.println("Si è verificato un errore: " + e);
System.exit(-1);
}
if (mod_gioco.equals("console"))
{
new Input();
new Scelta();
}
else if (mod_gioco.equals("grafica"))
{
new SceltaGrafica();
}
}
}

ma il sorgente con javac funziona

andbin
29-03-2007, 14:04
C:\Documents and Settings\Desktop\javadoc Program.javaNon ti sembra un po' poco??? In genere si imposta una directory di destinazione (da cancellare prima di ogni rigenerazione), si imposta magari un titolo e si imposta in genere un link esterno per linkare almeno la documentazione standard di Java, una cosa del tipo ad esempio:
-link http://java.sun.com/javase/6/docs/api/
Più eventualmente altre opzioni.

/**
*@author xxx
*
*@version 1.0
*
*Nome progetto:populationMonitor
*Descrizione: simula il comportamento di un semplice sistema di controllo remoto di flussi di individui.
* Il sistema opera in un territorio T diviso in M aree senza intersezione,
* ad ognuna delle quali afferisca un certo insieme di individui.
*La classe program chiede all'utente la modalità di visualizzazione del populationMonitor
*Inserire a console o console o grafica come richiesto
* Se viene scelta la modalità console l'applicazione legge i dati dal file di testo allegato
* Se la scelta ricade su grafica si potrà decidere l'input da File o da Grafica
*/E credi che sia giusto???
Si mette prima la parte descrittiva poi l'eventuale blocco dei tag!

Forse faresti bene a leggere:

Javadoc tool (http://java.sun.com/javase/6/docs/technotes/tools/windows/javadoc.html)

How to Write Doc Comments for the Javadoc Tool (http://java.sun.com/j2se/javadoc/writingdoccomments/index.html)

;)

ipv4
29-03-2007, 14:11
leggerò queste guide anche se nn mi semra questo il problema!
ciao

andbin
29-03-2007, 14:43
leggerò queste guide anche se nn mi semra questo il problema!Ho fatto una prova molto semplice: ho creato un sorgente Program.java e gli ho incollato esattamente il tuo codice. Javadoc qui da me non lancia alcuna eccezione e la documentazione la genera.
Però .... senza mettere la tua descrizione!! È dovuto (sicuramente) al fatto che ci va prima la parte descrittiva e poi i tag.

E nota, se vuoi che author/version siano visibili, devi passare le opzioni -author e -version che servono per attivare l'inclusione dei due tag.

Comunque è tutto scritto per bene nella documentazione che ho linkato, che è indispensabile per imparare come gestire correttamente la documentazione!

PGI-Bis
29-03-2007, 15:10
I tag li può mettere anche lì dove li ha messi. In rete ho trovato un "fix". Elimina la variabile d'ambiente CLASSPATH. Naturalmente funziona solo se hai impostato una variabile CLASSPATH.

andbin
29-03-2007, 15:22
I tag li può mettere anche lì dove li ha messi. In rete ho trovato un "fix". Elimina la variabile d'ambiente CLASSPATH. Naturalmente funziona solo se hai impostato una variabile CLASSPATH.Scusa PGI-Bis ma cosa può centrare la variabile di ambiente CLASSPATH con i commenti Javadoc??? :confused:

I tag @xxx vanno messi al fondo del commento.

PGI-Bis
29-03-2007, 15:56
Ho detto che ho trovato il fix in rete, non di sapere perchè risolve la cosa :D

spv42
29-03-2007, 16:16
:ops2:
Scambio di Battute, fra Titani! :D

PGI-Bis
29-03-2007, 17:10
I titani sono passati alla storia perchè li han seccati tutti :tie:

:D