|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Jul 2002
Messaggi: 202
|
[Java] Problemi da principiante con il mio primo package....
Riporto il mio primo tentativo (molto base!!) per la creazione di un package e che ovviamente non mi funziona..... Il manuale di riferimento è 'Thinking in Java' di Bruce Eckel
Variabile d'ambiente: .;C:\java\bin Nel file system ho predisposto la dir: com\ilmionome\simple Ecco il file incriminato: //: com:ilmionome:simple:Vector.java // Creating a package. package com.ilmionome.simple; public class Vector { public Vector() { System.out.println("com.ilmionome.Vector"); } } --- Compilazione OK Eseguo ed ecco l'errore: Exception in thread "main" java.lang.NoClassDefFoundError: Vector (wrong name com/ilmionome/simple/Vector) at java.lang.ClassLoader.defineClass0(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:502) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java 3) at java.net.URLClassLoader.defineClass(URLClassLoader.java:250) at java.net.URLClassLoader.access$100(URLClassLoader.java:54) at java.net.URLClassLoader$1.run(URLClassLoader.java:193) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:186) at java.lang.ClassLoader.loadClass(ClassLoader.java:299) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265) at java.lang.ClassLoader.loadClass(ClassLoader.java:255) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:315) Mi sapreste aiutare? Grazie Ultima modifica di utrecht : 17-02-2004 alle 11:30. |
|
|
|
|
|
#2 |
|
Bannato
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
|
Exception in thread "main" java.lang.NoClassDefFoundError: Vector (wrong name
com/ilmionome/simple/Vector) Per "lanciare" un file class a cui hai assegnato un package devi dargli il "nome pienamente qualificato". Nel tuo caso java com.ilmionome.simple.Vector [invio] il comando "java" deve essere lanciato dalla directory superiore a quella "com". |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Apr 2000
Messaggi: 138
|
Spero esista il main in quella classe perche' io non l'ho visto. Senza il main non ti partira' mai il programma.
__________________
fgmac |
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
Quote:
|
|
|
|
|
|
|
#5 |
|
Bannato
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
|
Whoops, non avevo visto che mancava il main.
Ma dal cappello posso tirar fuori un bel coniglio per dire che in realtà il main non serve! Codice:
package com.ilmionome.simple;
public class Vector {
static Vector v = new Vector();
public Vector() {
System.out.println("com.ilmionome.Vector");
System.exit(0);
}
}
|
|
|
|
|
|
#6 | |
|
Member
Iscritto dal: Jul 2002
Messaggi: 202
|
Quote:
Il problema però credo sia ancora più a monte.... in fase di compilazione non mi copia niente all'interno della directory com\ilmionome\simple Non dovrebbero finire qui dentro i files del package? |
|
|
|
|
|
|
#7 |
|
Member
Iscritto dal: Apr 2000
Messaggi: 138
|
come compili?
da riga di comando (javac tuaclasse.java ...) o usi un compilatore tipo jbuilder(tanto per citarne uno). Da riga di comando e' facile incasinarsi con i pakage...
__________________
fgmac |
|
|
|
|
|
#8 |
|
Member
Iscritto dal: Jul 2002
Messaggi: 202
|
La prima che hai detto: apro una finestra di dos =>C: \java\bin => da qui compilo con 'javac'
Il compilatore che hai citato mi faciliterebbe il compito? grazie |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
Per carità!!!! Non bestemmiare! Lascia perdere JBuilder e continua da riga di comando che se no non impari un fico!
|
|
|
|
|
|
#10 |
|
Bannato
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
|
La compilazione con javac genera i file class nella stessa directory in cui si trovano i sorgenti (a meno di reindirizzare l'output).
usa l'opzione "-d [basedir]" per generare l'albero di cartelle ad esempio: javac -d z:\java\ Vector.java genera nella cartella "z:\java" l'albero di cartelle z:\java\com\ z:\java\com\ilmionome\ z:\java\com\ilmionome\simple\ e il file class z:\java\com\ilmionome\simple\Vector.class |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:02.



















