Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    415

    errore java.lang.NoclassDefFoundError

    Ciao a tutti,
    sto imparando Java e sto facendo qualche applicazione di esempio per impratichirmi. Non riesco a capire a cosa è dovuto l'errore a run-time exception in thread "main" java.lang.NoClassDefFoundError: TestGara/class

    Il codice è questo:

    TestGara.java
    Codice PHP:
    public class TestGara
    {
        public static 
    void main(String args[])
        {
            
    Gara imola = new Gara("GP di Imola");
            
    imola.corriGara();
            
    String risultato imola.getRisultato();
            
    System.out.println(risultato);
        }    

    Gara.java
    Codice PHP:
    public class Gara {
        private 
    String nome;
        private 
    String risultato;
        private 
    Auto griglia [];
        
        public 
    Gara(String nome){
            
    setNome(nome);
            
    setRisultato("Corsa non terminata");
            
    creaGrigliaDiPartenza();
        }

        public 
    void creaGrigliaDiPartenza(){
            
    Pilota uno = new Pilota("Pippo");
            
    Pilota due = new Pilota("Pluto");
            
    Pilota tre = new Pilota("Topolino");
            
    Pilota quattro = new Pilota("Paperino");
            
    Auto autoNumeroUno = new Auto("Ferrari"uno);
            
    Auto autoNumeroDue = new Auto("Renault"due);
            
    Auto autoNumeroTre = new Auto("BMW"tre);
            
    Auto autoNumeroQuattro = new Auto("Mercedes",
            
    quattro);
            
    griglia = new Auto[4];
            
    griglia[0] = autoNumeroUno;
            
    griglia[1] = autoNumeroDue;
            
    griglia[2] = autoNumeroTre;
            
    griglia[3] = autoNumeroQuattro;
        }

        public 
    void corriGara() {
            
    int numeroVincente = (int)(Math.random()*4);
            
    Auto vincitore griglia[numeroVincente];
            
    String risultato vincitore.dammiDettagli();
            
    setRisultato(risultato);
        }
        
        private 
    void setRisultato(String vincitore) {
            
    this.risultato "Il vincitore di " this.getNome()
            + 
    ": " vincitore;
        }

        public 
    String getRisultato() {
            return 
    risultato;
        }

        public 
    void setNome(String nome) {
            
    this.nome nome;
        }

        public 
    String getNome() {
            return 
    nome;
        }

    Pilota.java
    Codice PHP:
    public class Pilota {
        private 
    String nome;
            
        public 
    Pilota(String nome){
            
    setNome(nome);
        }

        public 
    void setNome(String nome) {
            
    this.nome nome;
        }

        public 
    String getNome() {
            return 
    nome;
        }

    Auto.java
    Codice PHP:
    public class Auto {
        private 
    String modello;
        private 
    Pilota pilota;
            
        public 
    Auto(String modelloPilota pilota){
            
    this.modello modello;
            
    this.pilota pilota;
        }

        public 
    Pilota getPilota() {
            return 
    pilota;
        }
        
        public 
    String getModello() {
            return 
    modello;
        }
        
        public 
    String dammiDettagli() {
            return 
    "Pilota: " this.pilota.getNome() + " con la macchina " this.modello;
        }
        

    Se vedete anche qualcosaltro che vi sembra strano segnalatemelo per favore, sono i primi tentativi di programmi in java.
    Grazie.

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Come provi ad eseguirlo?

    Per caso scrivi
    codice:
    java  TestGara.class
    ?

    Dall'errore postato si direbbe di si... In questo caso basta togliere il .class e fare solo java NomeClasse
    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 2005
    Messaggi
    415
    Grazie mille!

    Ti chiedo un'altra cosa sullo stile di programmazione: ho visto che le classi possono essere scritte all'interno di un unico file o in più file anteponendo il modificatore public. Generalmente cosa si sceglie?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Teo80
    ho visto che le classi possono essere scritte all'interno di un unico file o in più file anteponendo il modificatore public. Generalmente cosa si sceglie?
    È possibile dichiarare più classi "top-level" nello stesso file sorgente ma la regola è che solamente una classe al massimo può essere marcata 'public' e se c'è tale classe public, allora il nome del file (a parte l'estensione .java) deve corrispondere esattamente al nome di questa classe.

    Per progettini piccoli può anche andare bene avere più classi in un singolo sorgente. Per progetti grandi o ad esempio librerie che devono fornire molte classi public, è chiaro che è preferibile avere ogni classe top-level in un sorgente a sé stante.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    415
    Grazie ancora per le risposte.

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.