Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Renault Twingo E-Tech Electric: che prezzo!
Renault Twingo E-Tech Electric: che prezzo!
Renault annuncia la nuova vettura compatta del segmento A, che strizza l'occhio alla tradizione del modello abbinandovi una motorizzazione completamente elettrica e caratteristiche ideali per i tragitti urbani. Renault Twingo E-Tech Electric punta su abitabilità, per una lunghezza di meno di 3,8 metri, abbinata a un prezzo di lancio senza incentivi di 20.000€
Il cuore digitale di F1 a Biggin Hill: l'infrastruttura Lenovo dietro la produzione media
Il cuore digitale di F1 a Biggin Hill: l'infrastruttura Lenovo dietro la produzione media
Nel Formula 1 Technology and Media Centre di Biggin Hill, la velocità delle monoposto si trasforma in dati, immagini e decisioni in tempo reale grazie all’infrastruttura Lenovo che gestisce centinaia di terabyte ogni weekend di gara e collega 820 milioni di spettatori nel mondo
DJI Osmo Mobile 8: lo stabilizzatore per smartphone con tracking multiplo e asta telescopica
DJI Osmo Mobile 8: lo stabilizzatore per smartphone con tracking multiplo e asta telescopica
Il nuovo gimbal mobile DJI evolve il concetto di tracciamento automatico con tre modalità diverse, un modulo multifunzionale con illuminazione integrata e controlli gestuali avanzati. Nel gimbal è anche presente un'asta telescopica da 215 mm con treppiede integrato, per un prodotto completo per content creator di ogni livello
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 01-09-2008, 16:44   #1
islandofjava
Senior Member
 
Iscritto dal: Feb 2008
Messaggi: 484
[Java/Jcreator]

Ciao a tutti

Cerco di compilare una piccola classe con Jcreator e nel general output ottengo questo errore:

Codice PHP:
--------------------Configuration: <Default>--------------------
java.lang.NoClassDefFoundErrorProva
Caused by
java.lang.ClassNotFoundExceptionProva
    at java
.net.URLClassLoader$1.run(URLClassLoader.java:200)
    
at java.security.AccessController.doPrivileged(Native Method)
    
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
    
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Could not find the main class: Prova.  Program will exit.
Exception in thread "main" 
Process completed

Come mai?
islandofjava è offline   Rispondi citando il messaggio o parte di esso
Old 01-09-2008, 20:24   #2
agente mm8
Senior Member
 
Iscritto dal: Mar 2008
Messaggi: 401
Puoi postare il codice?
Così è più facile scoprire l'errore, ok?
agente mm8 è offline   Rispondi citando il messaggio o parte di esso
Old 02-09-2008, 14:42   #3
islandofjava
Senior Member
 
Iscritto dal: Feb 2008
Messaggi: 484


Allora la consegna dell'esercizio è questa:

Codice PHP:
class Prova {
public 
void m1() throws Exception {
int x 5/0;
}
public 
void m2() {
m1();
}
public 
void m3() {
m2();
}
}

Modificate i metodi m2 ed m3 per far rimbalzare l&#8217;eccezione
da m2 e farla catturare a m3Quando m3 cattura l&#8217;eccezione
deve visualizzare su standard output catturata
Il codice modificato è il seguente:

Codice PHP:
class Prova {
public 
void m1() throws Exception {
int x 5/0;
}
public 
void m2() throws Exception {
m1();
}
public 
void m3() {
    try{
    
m2();
    }catch (
Exception e){
    
System.out.println("catturata");
}

islandofjava è offline   Rispondi citando il messaggio o parte di esso
Old 02-09-2008, 14:52   #4
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Nella classe del file .java dove hai definito il metodo public static void main(String argv[]) che al suo interno (immagino) usa Prova, hai importato Prova? [import miopackage.Prova;]
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 02-09-2008, 14:59   #5
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Per curiosita': come hai fatto a compilarlo? Da linea di comando?
Se da linea di comando, quale comando hai impartito?
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 02-09-2008, 16:02   #6
islandofjava
Senior Member
 
Iscritto dal: Feb 2008
Messaggi: 484
Quote:
Originariamente inviato da banryu79 Guarda i messaggi
Nella classe del file .java dove hai definito il metodo public static void main(String argv[]) che al suo interno (immagino) usa Prova, hai importato Prova? [import miopackage.Prova;]
ehr no...cioè non ho ben capito cosa mi chiedi.
Io non ho importato niente perché definisco una semplice classe dove mi si chiede venga propagata l'eccezione.
Del package non c'è nessun bisogno per soddisfare la richiesta della consegna di questo esercizio (sto preparando prog1 e questo riguarda le eccezioni ), quello che non mi è chiaro, è se la struttura è corretta.

Cioè il metodo di propagazione mi è chiaro, quello che non ho ben capito sulle eccezioni è se devo estendere, andando a recuperare librerie di Java che trattano le eccezioni, visto che qui in definitiva non ne sto creando una ex novo ed eventualmente come..
Il libro che ho io tratta due pagine ed è veramente fatto male e online non ci ho capito granché

Poi c'è pure questo errore di Jcreator che non capisco da dove spunti

Quote:
Originariamente inviato da sottovento Guarda i messaggi
Per curiosita': come hai fatto a compilarlo? Da linea di comando?
Se da linea di comando, quale comando hai impartito?
Sì allora, se io compilo con javac da console di comando mi da questo errore:
Prova.java:18: reached end of file while parsing
}→
^
1 error

Se compilo con JCreator mi da quell'errore in Build Output e quello là sopra in General Output.


grazie dell'aiuto
islandofjava è offline   Rispondi citando il messaggio o parte di esso
Old 02-09-2008, 16:16   #7
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Quote:
Originariamente inviato da islandofjava Guarda i messaggi
Sì allora, se io compilo con javac da console di comando mi da questo errore:
Prova.java:18: reached end of file while parsing
}→
^
1 error

Se compilo con JCreator mi da quell'errore in Build Output e quello là sopra in General Output.


grazie dell'aiuto
Converrai che dovrebbero dare gli stessi errori, e non una lista di errori diversi!!

Il motivo e' che JCreator NON sta compilando, ma cerca di eseguire: quindi ti riporta che non trova l'applicazione. Infatti se da prompt, in una directory qualsiasi scrivi:

Java mia_applicazione_inesistente

ottieni esattamente l'errore che hai riportato. Controlla le operazioni che fai, oppure la configurazione di JCreator (non so cosa sia).

Per quanto riguarda gli errori dati da javac, quelli sono veri: hai infatti dimenticato di chiudere l'ultima parentesi graffa, ma il codice e' indentato in maniera tale che risulta difficile accorgersene....
__________________
In God we trust; all others bring data

Ultima modifica di sottovento : 02-09-2008 alle 16:23.
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 02-09-2008, 16:38   #8
islandofjava
Senior Member
 
Iscritto dal: Feb 2008
Messaggi: 484
Quote:
Originariamente inviato da sottovento Guarda i messaggi
Converrai che dovrebbero dare gli stessi errori, e non una lista di errori diversi!!

Il motivo e' che JCreator NON sta compilando, ma cerca di eseguire: quindi ti riporta che non trova l'applicazione. Infatti se da prompt, in una directory qualsiasi scrivi:

Java mia_applicazione_inesistente

ottieni esattamente l'errore che hai riportato. Controlla le operazioni che fai, oppure la configurazione di JCreator (non so cosa sia).
Hai ragione!
Non conoscendo il programma, pensavo che con il comando di debug/run lo compilasse anche e invece no.
Grazie
Facendo build ora risulta solo questo:

--------------------Configuration: <Default>--------------------
java.lang.NoSuchMethodError: main
Exception in thread "main"
Process completed.

Quote:
Per quanto riguarda gli errori dati da javac, quelli sono veri: hai infatti dimenticato di chiudere l'ultima parentesi graffa, ma il codice e' indentato in maniera tale che risulta difficile accorgersene....
Sì è una schifezza, ma volevo mantenere un abbozzo del main per vedere se la versione che avevo scritto così andava bene oppure no ed eventualmente modificare appunto il main...resta infatti il dubbio se la consegna sia stata rispettata e se abbia capito la gestione delle eccezioni
islandofjava è offline   Rispondi citando il messaggio o parte di esso
Old 02-09-2008, 16:45   #9
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Quote:
Originariamente inviato da islandofjava Guarda i messaggi
Hai ragione!
Non conoscendo il programma, pensavo che con il comando di debug/run lo compilasse anche e invece no.
Grazie
Facendo build ora risulta solo questo:

--------------------Configuration: <Default>--------------------
java.lang.NoSuchMethodError: main
Exception in thread "main"
Process completed.
Perdonami, ma sta ancora cercando di eseguire! Stavolta trova la classe (quindi il nome della classe/directory/... e' configurato correttamente) ma non trova il main, ovviamente, perche' non l'hai scritto...


Quote:
Originariamente inviato da islandofjava Guarda i messaggi
Sì è una schifezza, ma volevo mantenere un abbozzo del main per vedere se la versione che avevo scritto così andava bene oppure no ed eventualmente modificare appunto il main...resta infatti il dubbio se la consegna sia stata rispettata e se abbia capito la gestione delle eccezioni
Chiaro. Per curiosita': aggiungendo la parentesi mancante, riesci a compilare (almeno a linea di comando, poi dovrai vedere ancora cosa fare col tuo ambiente)?
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 02-09-2008, 16:58   #10
islandofjava
Senior Member
 
Iscritto dal: Feb 2008
Messaggi: 484
Quote:
Originariamente inviato da sottovento Guarda i messaggi
Perdonami, ma sta ancora cercando di eseguire! Stavolta trova la classe (quindi il nome della classe/directory/... e' configurato correttamente) ma non trova il main, ovviamente, perche' non l'hai scritto...
Ehr sì non trova il main perché non c'è...e non ho ben capito come scriverlo sinceramente

Pensavo fosse sufficiente semplicemente un classico main richiamando il metodo m3...penso mi sfugga qualcosa a livello concettuale. :/


Quote:
Chiaro. Per curiosita': aggiungendo la parentesi mancante, riesci a compilare (almeno a linea di comando, poi dovrai vedere ancora cosa fare col tuo ambiente)?
Sìsì.
Mi da questo in Build Output:
--------------------Configuration: <Default>--------------------

Process completed.

Quindi compilare compila, il problema è quello sopra
islandofjava è offline   Rispondi citando il messaggio o parte di esso
Old 02-09-2008, 17:41   #11
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Quote:
Originariamente inviato da islandofjava Guarda i messaggi
Ehr sì non trova il main perché non c'è...e non ho ben capito come scriverlo sinceramente

Pensavo fosse sufficiente semplicemente un classico main richiamando il metodo m3...penso mi sfugga qualcosa a livello concettuale. :/
Perche' non e' sufficiente?
Codice:
    public static void main (String[] args)
    {
        m3();
    }
Caso mai, se c'e' un problema a livello concettuale, riguarda la eccezioni...
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 02-09-2008, 19:39   #12
agente mm8
Senior Member
 
Iscritto dal: Mar 2008
Messaggi: 401
quoto
agente mm8 è offline   Rispondi citando il messaggio o parte di esso
Old 02-09-2008, 22:00   #13
islandofjava
Senior Member
 
Iscritto dal: Feb 2008
Messaggi: 484
Quote:
Originariamente inviato da sottovento Guarda i messaggi
Perche' non e' sufficiente?
Codice:
    public static void main (String[] args)
    {
        m3();
    }
No, ci avevo già provato. A meno che non sbagli la sintassi, con questa soluzione:

Codice PHP:
class Prova {
     public 
void m1() throws Exception {
    
int x 5/0;
}
    public 
void m2() throws Exception {
    
m1();
}
    public 
void m3() {
        try{
            
m2();
            }catch (
Exception e){
    
System.out.println("catturata");
}
    }
    public static 
void main(String[] args) {
    
m3();
    } 

non funziona.

Al momento della compilazione, mi vengono restituiti 2 errori, uno nel General Output:
--------------------Configuration: <Default>--------------------
java.lang.NoSuchMethodError: main
Exception in thread "main"
Process completed.


e uno nel Build Output:
non-static method m3() cannot be referenced from a static context.

Che cosa sbaglio quindi?

Quote:
Caso mai, se c'e' un problema a livello concettuale, riguarda la eccezioni...
Sicuramente. Ma è infatti la mia sensazione e l'ho scritto fin dall'inizio. Non riesco a capire se e quando utilizzare le librerie presenti in Java per gestire le eccezioni e quando no e anche sul come ho qualche dubbio (la propagazione l'ho capita, il throw new exception anche o almeno credo).
islandofjava è offline   Rispondi citando il messaggio o parte di esso
Old 02-09-2008, 22:43   #14
khelidan1980
Senior Member
 
L'Avatar di khelidan1980
 
Iscritto dal: Mar 2005
Città: Morimondo city
Messaggi: 5491
Quote:
Originariamente inviato da islandofjava Guarda i messaggi
e uno nel Build Output:
non-static method m3() cannot be referenced from a static context.

Che cosa sbaglio quindi?
Ovvio,m3 non è statico,devi creare l'oggetto e poi richiamarlo:

Codice:
class Prova {
    public void m1() throws Exception {
    int x = 5/0;
}
    public void m2() throws Exception {
    m1();
}
    public void m3() {
        try{
            m2();
            }catch (Exception e){
    System.out.println("catturata");
}
    }
    public static void main(String[] args) {
    	Prova obj = new Prova();
   obj.m3();
    }
}
__________________
Khelidan
khelidan1980 è offline   Rispondi citando il messaggio o parte di esso
Old 02-09-2008, 22:53   #15
islandofjava
Senior Member
 
Iscritto dal: Feb 2008
Messaggi: 484
Funziona!

Però non ho capito che cosa hai fatto scusa
islandofjava è offline   Rispondi citando il messaggio o parte di esso
Old 03-09-2008, 06:38   #16
Xfight
Member
 
L'Avatar di Xfight
 
Iscritto dal: May 2006
Messaggi: 229
In pratica il metodo m3 non è statico e quindi non può essere richiamato senza prima creare un oggetto di tipo Prova.

Quindi per usare un metodo non statico ( quelli scritti da te ) si deve prima creare un oggetto che contiene quel metodo e poi si può invocarlo scrivendo ( in questo caso ) obj.m3()
Oppure si può fare anche così
Codice:
new Prova().m3();
Si crea un oggetto e si invoca direttamente il metodo.
Testato e funzia.

ByeBye
__________________
Una volta eliminato l'impossibile, quello che resta, per improbabile che sia, dev'essere la verità
http://timestop.netsons.org/ -> il blog sull'informatica
Xfight è offline   Rispondi citando il messaggio o parte di esso
Old 03-09-2008, 07:56   #17
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Quote:
Originariamente inviato da islandofjava Guarda i messaggi
non-static method m3() cannot be referenced from a static context.
Si, ogni tanto mi bevo il cervello. Colpa mia, scusa.
Grazie a khelidan1980 e Xfight per aver ovviato alle stupidate che scrive sottovento
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 03-09-2008, 15:25   #18
islandofjava
Senior Member
 
Iscritto dal: Feb 2008
Messaggi: 484
Mmmm ok...

Ma sarebbe stato possibile scrivendo ad esempio un'altra classe Eccezione che la controlli e facendo sì che sia ereditata dalla Prova?
O basta scrivere un main?

In effetti la consegna non è chiarissima, perché dice di modificare solo i mtodi m2 e m3; forse è il caso che chieda al mio prof

Grazie a tutti cmq
islandofjava è offline   Rispondi citando il messaggio o parte di esso
Old 03-09-2008, 16:19   #19
khelidan1980
Senior Member
 
L'Avatar di khelidan1980
 
Iscritto dal: Mar 2005
Città: Morimondo city
Messaggi: 5491
Quote:
Originariamente inviato da sottovento Guarda i messaggi
Si, ogni tanto mi bevo il cervello. Colpa mia, scusa.
Grazie a khelidan1980 e Xfight per aver ovviato alle stupidate che scrive sottovento
Hai voglia quante ne scrivo io...

Quote:
Originariamente inviato da islandofjava Guarda i messaggi
Mmmm ok...

Ma sarebbe stato possibile scrivendo ad esempio un'altra classe Eccezione che la controlli e facendo sì che sia ereditata dalla Prova?
O basta scrivere un main?

In effetti la consegna non è chiarissima, perché dice di modificare solo i mtodi m2 e m3; forse è il caso che chieda al mio prof

Grazie a tutti cmq
ma la modifica fatta è solo per far funzionare il codice,al limite avresti potuto dichiarare static i metodi,se è questo che intendi,non centra con le eccezioni,per il resto la consegna mi sembra rispettata,il main lo puoi scrivere come vuoi mi pare(e non che ci siano molte alternative)
__________________
Khelidan
khelidan1980 è offline   Rispondi citando il messaggio o parte di esso
Old 03-09-2008, 19:22   #20
islandofjava
Senior Member
 
Iscritto dal: Feb 2008
Messaggi: 484
Quote:
Originariamente inviato da khelidan1980 Guarda i messaggi
ma la modifica fatta è solo per far funzionare il codice,al limite avresti potuto dichiarare static i metodi,se è questo che intendi,non centra con le eccezioni,per il resto la consegna mi sembra rispettata,il main lo puoi scrivere come vuoi mi pare(e non che ci siano molte alternative)
Nono intendevo per eventualmente utilizzare il meccanismo dell'ereditarietà e le librerie Java dov'è definita anche la divisione per 0 come tipo di errore (non mi ricordo la reference ma sono sicuro ci sia).
Modificare i metodi non potevo proprio per la consegna; cioè il 2 e 3 sì ma poi l'errore si sarebbe verificato nel metodo1 che invece deve rimanere così come è scritto.

Grazie mille allora


P.S.: Eventualmente posso chiedervi altri chiarimenti se mi vengono dei dubbi durante altri tipi di esercizi? ^^'
islandofjava è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Renault Twingo E-Tech Electric: che prezzo! Renault Twingo E-Tech Electric: che prezzo!
Il cuore digitale di F1 a Biggin Hill: l'infrastruttura Lenovo dietro la produzione media Il cuore digitale di F1 a Biggin Hill: l'infrast...
DJI Osmo Mobile 8: lo stabilizzatore per smartphone con tracking multiplo e asta telescopica DJI Osmo Mobile 8: lo stabilizzatore per smartph...
Recensione Pura 80 Pro: HUAWEI torna a stupire con foto spettacolari e ricarica superveloce Recensione Pura 80 Pro: HUAWEI torna a stupire c...
Opera Neon: il browser AI agentico di nuova generazione Opera Neon: il browser AI agentico di nuova gene...
Apple disattiverà la sincronizzaz...
Google lancia l'allarme: attenzione ai m...
Primo test drive con Leapmotor B10: le c...
'Non può essere un robot': l'uman...
Monopattino elettrico Segway Ninebot Max...
Syberia Remastered è disponibile:...
Sony scopre che tutti i modelli AI hanno...
Amazon nasconde un -15% su 'Seconda Mano...
Due occasioni Apple su Amazon: iPhone 16...
Verso la fine della TV tradizionale? I g...
Cassa JBL a 39€, portatili, smartphone, ...
Cometa interstellare 3I/ATLAS: la sonda ...
Jensen Huang e Bill Dally di NVIDIA prem...
Il futuro della birra è green: H...
ECOVACS GOAT G1-2000: il robot tagliaerb...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 16:50.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v