|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Apr 2003
Messaggi: 4
|
AIUTO!Problema con il Java
![]() Ciao, scusatemi il disturbo, ma non so proprio dove sbattere la testa... Ho un problema con il java... Ho la versione J2SDK 1.4.1, ho scritto un semplicissimo programma: class ciao2 { public static void main(String argv[]) { System.out.println("ciao"); } } e l'ho salvato in ciao2.java, l'ho compilato con: javac ciao2.java senza che mi segnalasse nessun errore e quando lo lancio scrivendo: java ciao2 mi da: Exception in thread "main" java.lang.NoClassDefFoundError:ciao2 NON RIESCO A CAPIRE DOVE SBAGLIO AIUTOOOOOO!!! Grazie mille |
![]() |
![]() |
![]() |
#2 | |
Registered User
Iscritto dal: Dec 2001
Messaggi: 890
|
Re: AIUTO!Problema con il Java
Quote:
deve essere: Codice:
public static void main(String[] args) |
|
![]() |
![]() |
![]() |
#3 |
Bannato
Iscritto dal: Feb 2001
Città: Mestre
Messaggi: 886
|
è lo stesso argv o args
a me funziona senza problemi quel pezzo di codice che hai scritto |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jun 2001
Città: Lazio
Messaggi: 5935
|
A me funziona perfettamente
![]() Ciao
__________________
HP Gaming 16 I7 10750H, nVidia GTX1650TI 4Gbyte DDR6, 16Gbyte di Ram, SSD INTEL 500Gbyte, Amplificatore Denon PMA-510AE, Diffusori Q Acoustics 3020i |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Jul 2000
Città: Vignola (MO)
Messaggi: 316
|
Hai inserito la direttoty di compilazione nel classpath?
__________________
<Asus A8N-E Deluxe> <Amd64 3000+> <Ram 2.5 Gb> <Geffo3> <2 Maxtor 160 Gb RAID 1> <Adsl ZyXEL 645r> <ESS Maestro> <GNU/Linux Debian Etch> ![]() Wii 1037 4238 6261 1967 |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Oct 2000
Città: Montreal (Canada)
Messaggi: 1309
|
Sei sicuro di avere scritto esattamente lo stesso nome per la classe e il file?
La classe è dentro ad un package? |
![]() |
![]() |
![]() |
#7 |
Junior Member
Iscritto dal: Apr 2003
Messaggi: 4
|
![]() no la classe non è in package. Si sono sicuro che il nome della classe e il nome del file coincidono. Cos'è il classpath? Ragazzi, ma perchè non funziona?Da cosa può dipendere? Puo essere colpa del mio Pc?Cosa devo fare? AIUTOOO!!!!! |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Jul 2002
Città: Milano
Messaggi: 19148
|
rilassati è un problema di CLASSPATH come ti hanno già detto.
devi mettere una variabile di ambiente, chiamata CLASSPATH, con questo valore: .;c:\java suppenendo che il tuo java SDK sia nella cartella c:\java se ci dici che sistema operativo hai magari ti spieghiamo come mettere la variabile di ambiente |
![]() |
![]() |
![]() |
#9 | |
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
Re: AIUTO!Problema con il Java
Quote:
![]() Come ti è stato detto il problema è nel CLASSPATH. Un trucco: invece di specificare la directory, metti set CLASSPATH=.; il punto indica la directory corrente . |
|
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Feb 2003
Città: fra casa e lavoro
Messaggi: 1061
|
public class prova
|
![]() |
![]() |
![]() |
#11 | |
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
Quote:
|
|
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Feb 2003
Messaggi: 3530
|
il codice va bene
devi specificare al compilatore la directory in cui hai installato l'ambiente java... se ci dici che compilatore usi magari qualcuno te lo sa dire con precisione per esempio in JCreator devi fare Configure>Options>JDK Profiles click su new e poi aggiungi la directory in cui hai installato il java |
![]() |
![]() |
![]() |
#13 |
Member
Iscritto dal: Mar 2003
Città: Torino
Messaggi: 72
|
Ho da poco fatto la tesi in Java. La risposta giusta è quella di CN73 che appare anche sul libro Java 2 di Horstmann e Cornell (che ti consiglio).
Dare consigli sbagliati a uno che si avvicina ad un nuovo linguaggio può rendergli la cosa abbastanza difficile, non vi pare? |
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Oct 2000
Città: Montreal (Canada)
Messaggi: 1309
|
![]() ![]() In che cosa sei dottore....??? |
![]() |
![]() |
![]() |
#15 |
Junior Member
Iscritto dal: Apr 2003
Messaggi: 4
|
Siete dei GRANDI!!!
Ringrazio tutti per le risposte ma in particolare Pretorius, Cn73, e recoil, facendo come avete detto voi il programma ha girato senza problemi... posso disturbarvi un'altra volta? CHE COSA è IL CLASSPATH?Perchè prima non girava ?che cosa è cambiato dopo che ho scritto: set CLASSPATH=. ? GRAZIE MILLE |
![]() |
![]() |
![]() |
#16 |
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
Allora il CLASSPATH è una variabile di ambiente utile alla JRE (e anche per compilare).
CLASSPATH: Regola: una classe viene cercata nella sottodirectory corrispondente a partire dalle directory nel classpath Vediamo adesso le regole che vengono utilizzate per localizzare una classe quando questa viene richiesta. Abbiamo visto che Java carica le classi in memoria quando qualcuno vi fa riferimento. Le classi hanno un nome gerarchico che comprende il loro package. Il package serve a anche per indicare in quale sotto directory bisogna cercare la classe. Le directory da cui parte la ricerca sono elencate nel CLASSPATH. Questo è un parametro che viene fornito all'interprete sulla riga di comando oppure usando lo variabile di ambiente CLASSPATH. se CLASSPATH=c:\java;c:\java\lib allora ad es java.util.Vector viene cercata in: 1. c:\java\lib\java\util\Vector.class 2. c:\java\util\Vector.class Quindi se io faccio riferimento alla classe java.util.Vector e ho nel CLASSPATH le directory C:\java e C:\java\lib, si controllerà che non esista un file C:\Java\java\util\Vector.class o un file C:\Java\lib\java\util\Vector.class. Fare attenzione che questo meccanismo a volte sfugge ai principianti. il package di default (senza dichiarazione di package) non ha una sottodirectory le classi senza package vengono cercate nelle directory del classpath Il package di default è quello che si ha se si ha omesso la dichiarazione package, corrisponde alla radice di ogni classe nel CLASSPATH. in pratica perchè prima non te lo eseguiva e poi con set CLASSPATH=.; si. Perchè gli hai detto di cercare nella directory corrente che è proprio quella che conteneva il ciao2.class! |
![]() |
![]() |
![]() |
#17 | |
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#18 | |
Senior Member
Iscritto dal: Feb 2003
Messaggi: 3530
|
Quote:
|
|
![]() |
![]() |
![]() |
#19 |
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
Questo è vero...però devi capire una cosa: senza offesa per nessuno queste cose sono davvero basilari. Se ci si confonde su questi concetti, è finita, non si va + avanti. In questo caso dare consigli sbagliati è davvero poco istruttivo.
Non voglio sembrare antipatico ![]() ![]() |
![]() |
![]() |
![]() |
#20 |
Member
Iscritto dal: Mar 2003
Città: Torino
Messaggi: 72
|
Per Soalle: non mi va di rendere pubblico il mio titolo di studio
![]() ![]() Per TheFrog: hai ragione in generale. Quello che ti faccio notare è solo che nel caso particolare di una persona che inizia, dargli un indizio sbagliato può essere molto più dannoso che nel caso di un consiglio ad un "esperto". Ti dico questo perchè quel problema di Java lo ho avuto anche io (credo sia comune a chi vuole subito mettersi a smanettarci) e mi sono sentito dire cose che mi hanno fatto perdere tempo. Mi ricordo ancora uno che mi disse che era un problema di "oggetti remoti", forse solo per dire qualcosa. Comunque tutti facciamo quello che possiamo e sanz'altro la volontà di aiutare deve essere sempre lodata, indipendentemente dal risultato, quella di dire sempre qualcosa per farsi vedere saccenti, no. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:55.