|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Bannato
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2688
|
[java] Primo programma...errore in esecuzione?
Ciao,
ho iniziato a fare i primi passi con Java per un esame universitario...è un semplice programma che non fà ne input ne output formato da 2 classi: una che definisce il tipo di dati dei numeri interi, positivi e pari,più un metodo di istanza ed uno di classe e l'altra che contiene il main che istanzia 3 oggetti interipositivi pari e che usa i due metodi. Dopo aver compilato le due classi provo ad eseguire da DOS la classe che contiene il main con il comando: java TestInteroPositivoPari.class mi dà il seguente messaggio di errore: C:\Programmi\Crimson Editor\template\esercizi\InteroPositivoPari>java TestInteroPositivoPari.class Exception in thread "main" java.lang.NoClassDefFoundError: TestInteroPositivoPari/class Caused by: java.lang.ClassNotFoundException: TestInteroPositivoPari.class at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) I codici delle due classi sono: Classe TestInteroPositivoPari.java: Codice:
class TestInteroPositivoPari{
/* Il metodo main è necessariamente un metodo di classe */
public static void main(String[] args){
int k;
InteroPositivoPari N, M, P;
N = new InteroPositivoPari(4);
M = new InteroPositivoPari(6);
P = N.somma(M); // N è l'oggetto ricevente
/* Nell'istruzione che segue la classe InteroPositivoPari è la classe ricevente */
k = InteroPositivoPari.verificaSeInteroPositivoPari(3);
}
}
Codice:
class InteroPositivoPari{
int n; // E' la variabile di istanza
/* Il costruttore */
InteroPositivoPari(int k){
if(k >= 0 && k%2 == 0) n = k;
else n = 1;
}
/* Il metodo di istanza che esegue la somma dell'oggeto ricevente con l'oggetto di tipo InteroPositivoPari referenziato
dal parametro altro */
InteroPositivoPari somma(InteroPositivoPari altro){
int k;
InteroPositivoPari risultato;
if(this.n != 1 && altro.n != 1)
k = this.n + altro.n;
else k = 1;
risultato = new InteroPositivoPari(k);
return risultato;
}
/* Il metodo di classe che verifica se il parametro h è un intero positivo pari o meno, restituisce 1 nel primo caso, 0
altrimenti */
public static int verificaSeInteroPositivoPari(int h){
int esito = 0;
if(h >= 0 && h%2 == 0) esito = 1;
return esito;
}
}
Grazie Andrea |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2786
|
Quando lanci il programma non devi scrivere ".class".
Quindi devi scrivere: "java TestInteroPositivoPari" |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Mar 2008
Messaggi: 401
|
Ora sei ancora all'inizio e vabé, ma più in là ti consiglio vivamente un IDE, come ad esempio NetBeans o Eclipse.
|
|
|
|
|
|
#4 |
|
Bannato
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2688
|
Ok...funziona...ma come mai devo lanciare InteroPositivoPari e non InteroPositivoPari.class ? non devo lanciare in esecuzione la classe che contiene il metodo main quindi il file che la contiene compilata?
Per l'IDE...la proff ci ha fatto scaricare un piccolo editor...ha detto che se ci scopre ad usare netbeans o altro per questo primo esame ci strozza (non sò perchè) e che li useremo nei corsi successivi...boooo |
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
Inoltre cominciare a smanettare con IDE della complessità di NetBeans et similia per il livello a cui siete probabilmente potrebbe essere una perdita di tempo.
__________________
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) |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:22.



















