PDA

Visualizza la versione completa : [JAVA} problema con package


azz00
08-02-2005, 15:26
salve a tutti
vi porgo subito il mio strano problema:

ho scritto un mini programma di prova con tre classi
ElementLister.java
Utente.java
Cavolo.java

cavolo.java contiene il main
compilando a riga di comando il programma nn da problemi, vengono creati i 3 file .class ed il main viene eseguito normalmente.

ora non appena inserisco in tutti e tre i file il comando package mio; a compilare compila, ma durante l'esecuzione mi da errore e non esegue il programma



C:\jspprova\esercitazione\WEB-INF\classes\mio>C:\Programmi\Java\jdk1.5.0\jre\bin
\java -classpath "..\jdom.jar;" Cavolo
Exception in thread "main" java.lang.NoClassDefFoundError: Cavolo (wrong name: mio/Cavolo)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java :620)
at java.security.SecureClassLoader.defineClass(Secure ClassLoader.java:12
4)
at java.net.URLClassLoader.defineClass(URLClassLoader .java:260)
at java.net.URLClassLoader.access$100(URLClassLoader. java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java: 195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.j ava:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:3 06)
at sun.misc.Launcher$AppClassLoader.loadClass(Launche r.java:268)
at java.lang.ClassLoader.loadClass(ClassLoader.java:2 51)
at java.lang.ClassLoader.loadClassInternal(ClassLoade r.java:319)

C:\jspprova\esercitazione\WEB-INF\classes\mio>pause
Premere un tasto per continuare . . .

C:\jspprova\esercitazione\WEB-INF\classes\mio>

LeleFT
08-02-2005, 16:45
Non appena aggiungi quella riga di comando, infatti, dichiari che le classi fanno parte di un package: per avviare il programma, quindi, devi spostarti nella cartella appena superiore! Esempio: se tu hai un programma che si chiama Pippo, che fa parte di un package chiamato MioPackage, questa sar la struttura della tua classe Pippo.java:


package MioPackage;

public class Pippo {
...
}

E questa sar contenuta in una cartella chiamata MioPackage, ad esempio:


C:\MieiProgrammi\MioPackage\Pippo.class

Per eseguire questo programma, devi essere nella cartella MieiProgrammi e non all'interno della cartella MioPackage, utilizzando il nome della classe completo del dome del package:


C:\MieiProgrammi> java MioPackage.Pippo

Ciao. :ciauz:

azz00
08-02-2005, 16:54
Grazie 1000, ora funziona...
ma volevo chiederti un'altra cosa... tu usi JSP???

xk io devi far funzionare questa classe in una Jsp usando i Bean

LeleFT
08-02-2005, 16:57
No, non uso JSP. Mi spiace.


Ciao. :ciauz:

Loading