Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    643

    [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);
       }
    }
    Classe InteroPositivoPari.java
    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;
        }
    }
    Da che può dipendere?Come risolvo?

    Grazie
    Andrea

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Non è java TestInteroPositivoPari.class ma java TestInteroPositivoPari
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    643
    Originariamente inviato da Alex'87
    Non è java TestInteroPositivoPari.class ma java TestInteroPositivoPari
    ok funziona...ma perchè? se faccio java TestInteroPositivoPari non stò eseguendo con la JVM il file TestInteroPositivoPari.class che a sua volta usa il file InteroPositivoPari.class?
    o che altro? mi sfugge qualcosa?

    Grazie
    Andrea

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Originariamente inviato da D4rkAng3l
    ok funziona...ma perchè? se faccio java TestInteroPositivoPari non stò eseguendo con la JVM il file TestInteroPositivoPari.class che a sua volta usa il file InteroPositivoPari.class?
    o che altro? mi sfugge qualcosa?

    Grazie
    Andrea
    Quello che la JVM carica è una classe, non un file. Che la classe stia in un file con lo stesso nome è solo un modo che, chi ha ideato la JVM, ha trovato per semplificarsi la vita.

    La classe si chiama Pippo e non Pippo.class. Il punto, oltretutto, viene utilizzato come separatore di package (o di directory, che dir si voglia).

    Queste sono cose che sono scritte sulle prime pagine di tutti i manuali Java.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.