Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    127

    compilazione di un programma java

    Ciao a tutti,
    premetto che sto imparando e sto facendo il mio primo programmino semplice semplice per capire come funziona java.

    Ho fattodue classi:

    public class NumeroIntero {
    public int Numero;
    public void StampaNumero(){
    System.out.println(Numero);
    }
    }

    public class ClasseRichiesta{
    public static void main(String args[]){
    NumeroIntero uno = new NumeroIntero();
    NumeroIntero due = new NumeroIntero();
    uno.Numero = 2;
    due.Numero = 4;
    uno.StampaNumero();
    due.StampaNumero();
    }
    }

    Sulla base di quanto scritto sul libro, questo piccolo esercizietto é corretto.

    Il mio dubbio é il seguente:
    Ora che devo fare la compilazione cosa devo fare?? Se inserisco entrambe le classi nello stesso file ClasseRichiesta.java, mi dice che la classe NumeroIntero deve essere dichiarata nel file NumeroIntero.java, se divido le classi in due file, nella compilazione mi da il seguente errore:
    cannot resolve symbol
    symbol : class NumeroIntero
    location: class ClasseRichiesta
    NumeroIntero uno = new NumeroIntero();
    ^
    cannot resolve symbol
    symbol : class NumeroIntero
    location: class ClasseRichiesta
    NumeroIntero uno = new NumeroIntero();
    ^

    Lo stesso errore lo da per l'oggetto due.

    Che devo fare???? In che modo si compila un file java???

    Grazie mille a tutti.

    Ciao
    Anna

  2. #2
    importati il package della numeroIntero dentro l'altra classe evidentemente non la vede.
    è la prima cosa che mi viene in mente
    Un salustro a tutti

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    127
    Quindi io devo mettere le due classi su file diversi e nella ClasseRichiesta devo mettere un qualcosa che mi richiami il file NumeroIntero.class???

    Domanda da 750.000.000 di dollari... come si fa????

    La struttura dei miei file é la seguente:
    la cartella principale é "corso" dentro la quale c'é la cartella "classe". Ho provato ad aggiungere prima del blocco

    public class ClasseRichiesta{
    public static void main(String args[]){
    NumeroIntero uno = new NumeroIntero();
    NumeroIntero due = new NumeroIntero();
    uno.Numero = 2;
    due.Numero = 4;
    uno.StampaNumero();
    due.StampaNumero();
    }
    }

    La stringa:
    package classi.NumeroIntero;

    Ma mi da lo stesso errore.

    Grazie mille
    Anna

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    Hai dichiarato entrambe le classi public e non puoi farlo...la classe che contiene il main la dichiari public l'altra senza mettere prima public, non so darti una spiegazione proprio scientifica...ma intuitivamente penso che sia perchè può esserci solo una classe public..cioè quella che contiene il mail tutte le altre sono sottoclassi in un certo modo accorpate.


    E' indifferente che le due classi stiano su file diversi o se il file è lo stesso. Inoltre sappi che basta compilare la principale(quella dove all'interno c'è il main) e automaticamente vengono compilate le classi richiamate.

    esempio se metti tutte le due classi nello stesso file:
    nomini il file ClasseRichiesta.java

    Per compilarlo : javac ClasseRichiesta.java
    e poi lo esegui: java ClasseRichiesta



    Buon divertimento!

    P.s: Puoi ancke non dichiararle public entrambe per stare felice e vivere una vita meravigliosa senza preoccupazioni

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Ehm... puoi semplicemente dividere le due classi su due file diversi, lasciando inalterato il codice. L'importante è che i due file siano sulla stessa cartella.


    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

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    127
    Infatti è giá cosí. Solo che mi da l'errore sotto riportato. Ho provato anche a mettere tutto insieme nella stessa cartella... l'errore é il seguente:

    class NumeroIntero is public, should be declared in a file named NumeroIntero.java

    Che devo fare?

    Come inizio stiamo andando proprio bene .... :master:

    Grazie mille a tutti.
    Anna

  7. #7
    Segui il suggerimento di LeleFT
    Poi vai dal prompt di dos e controlla la variabile classpath: è quella che permette al compilatore di andare a cercare dove stanno i file.
    Aggiungi nella variabile il . (che indica la dir corrente) e prova a compilare di nuovo il tutto
    23-08-2005: Udinese in cémpions lìg
    Questa estate l'ho passata a Tallin

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    per curiosità prova a mettere il programma nella cartella bin e provalo da li...e vedi se qui ti funziona. :bubu:

  9. #9
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Se ilcompilatore ti dà quel messaggio di errore, significa che stai tentando di compilare un file che contiene, ANCHE LA CLASSE NumeroIntero. Controlla che il file ClasseRichiesta non contenga anche la classe NumeroIntero.
    Dovresti avere questi due file:

    ClasseRichiesta.java:
    codice:
    public class ClasseRichiesta{ 
       public static void main(String args[]){ 
          NumeroIntero uno = new NumeroIntero(); 
          NumeroIntero due = new NumeroIntero(); 
          uno.Numero = 2; 
          due.Numero = 4; 
          uno.StampaNumero(); 
          due.StampaNumero(); 
       } 
    }
    NumeroIntero.java:
    codice:
    public class NumeroIntero { 
       public int Numero; 
       public void StampaNumero(){ 
          System.out.println(Numero); 
       } 
    }
    Inoltre controlla che i due file siano nella stessa cartella.

    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.