Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    creazione ed esecuzione package

    Salve a tutti, come da titolo sto cercando di creare ed eseguire dei files in java con package ed istruzioni import.. ma qualcosa va storto (premetto che sono nuovo della programmazione java)...

    mi spiego meglio...

    creo due files .java all'interno della cartella c:\ chiamati Autore.java e EsempioPublic.java

    codice:
    package esercizi.pasquale;
    public class Autore {
    
       public String Nome()
       {
       return "Mario";
       }
       public String Cognome()
       {
       return "Rossi";
     }
     }

    codice:
    import esercizi.pasquale.*;
    
    package esercizi;
    public class EsempioPublic {
       Autore AutoreDelLibro = new Autore();
           public void StampaNomeAutore()
           {
           System.out.println(AutoreDelLibro.Nome());
           }
    }
    Con riga di comando eseguo prima questa istruzione:
    codice:
     
    C:/>javac -d c:\ Autore.java
    e fin qui tutto ok, mi crea il file Autore.class nella cartella c:\esercizi.pasquale!
    quando invece digito quest'altro codice sul prompt dei comandi mi da errore:

    codice:
    C:/>javac -d c:\ EsempioPublic.java
    EsempioPublic.java:3: class, interface, or enum expected
    package esercizi;
    ^
    }
    queste sono le configurazioni delle variabili d'ambiente:
    codice:
    PATH: C:\Program Files\Java\jdk1.6.0_23\bin;
    CLASSPATH: .;c:\;
    ho letto di tutto e di più, ma evidentemente mi sfugge qualcosa...

    ringrazio anticipatamente che mi aiuta!!

  2. #2
    Il package va prima dell'import.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Originariamente inviato da satifal
    Il package va prima dell'import.
    Grazie mille per la risposta... ora il file EsempioPublic.class è compilato, ma nell'esecuzione del file si presenta questo errore

    codice:
    C:\esercizi>java EsempioPublic
    Exception in thread "main" java.lang.NoClassDefFoundError: EsempioPublic (wrong
    name: esercizi/EsempioPublic)
            at java.lang.ClassLoader.defineClass1(Native Method)
            at java.lang.ClassLoader.defineClassCond(Unknown Source)
            at java.lang.ClassLoader.defineClass(Unknown Source)
            at java.security.SecureClassLoader.defineClass(Unknown Source)
            at java.net.URLClassLoader.defineClass(Unknown Source)
            at java.net.URLClassLoader.access$000(Unknown Source)
            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)
    Could not find the main class: EsempioPublic.  Program will exit.
    
    C:\esercizi>
    Grazie anticipatamente!!!!

  4. #4
    Dovresti postare le classe completa di main.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    Originariamente inviato da satifal
    Dovresti postare le classe completa di main.
    mmmmmmmmmmm......

    Allora, già detto che sono un neofita.... quindi abbi pazienza

    quello che ho postato sono le classi complete... che ho preso da un'esercitazione...
    potresti spiegarmi come e cosa devo mettere nella classe main per far funzionare questo benedetto programmino??

    grazie!

  6. #6
    Hai ragione, ho letto solo di sfuggita l'eccezione ed effettivamente si presenta in quanto nella classe che vuoi eseguire manca il metodo main che deve necessariamente essere presente per poter eseguire una classe:

    codice:
    package esercizi;
    
    import esercizi.pasquale.*;
    
    public class EsempioPublic {
    
        Autore autoreDelLibro = new Autore();
        
        public void StampaNomeAutore() {
            System.out.println(autoreDelLibro.Nome());
        }
    
        public static void main(String[] args) {
            EsempioPublic esempioPublic = new EsempioPublic();
            esempioPublic.StampaNomeAutore();
        }
    
    }
    Prova così.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  7. #7
    codice:
    
    package esercizi;
    
    import esercizi.pasquale.*;
    
    
    public class EsempioPublic {
    
    Autore autoreDelLibro = new Autore();
    
    public void StampaNomeAutore()
    
    {
    
    System.out.println(autoreDelLibro.Nome());
    
    }
    
          public static void main (String[] argv){
    
             EsempioPublic esempio = new EsempioPublic();
             esempio.StampaNomeAutore();
    
    }
    
    }

    questa è la modifica che ho fatto, però mi da lo stesso errore in fase di esecuzione della classe!!!


    ps. i files si trovano fisicamente in:

    c:\\esercizi\EsempioPublic.class
    c:\\esercizi\pasquale\Autore.class

  8. #8
    Non puoi eseguire la classe da dentro il package, devi portarti nella cartella superiore che contiene i package (nel tuo caso c:\) ed eseguire:

    java esercizi.EsempioPublic
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  9. #9
    grazie Satifal, ora posso proseguire con lo studio

  10. #10
    Ti consiglio di studiarti anche la nomenclatura standard Java che suggerisce che i nomi delle classi inizino con la lettera maiuscola mentre quelli dei metodi e degli attributi con le minuscole, l'utilizzo dei get e sei set (i metodi che restituiscono il valore di un attributo iniziano con get mentre quelli tramite i quali è possibile valorizzare un attributo iniziano con set). Nel tuo caso avresti getNome() e getCognome. Una più corretta implementazione della classe Autore sarebbe:

    codice:
    package esercizi.pasquale;
    
    public class Autore {
    
        private String nome;
        private String cognome;
    
        public Autore() {}
    
        public Autore(String nome, String cognome) {
            this.nome = nome;
            this.cognome = cognome;
        }
    
        public String getNome() {
            return nome;
        }
    
        public void setNome(String nome) {
            this.nome = nome;
        }
    
        public String getCognome() {
            return cognome;
        }
    
        public void setCognome(String cognome) {
            this.cognome = cognome;
        }
        
    }
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

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.