Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2015
    Messaggi
    107

    Exception in thread "main" java.lang.NoClassDefFoundError problema

    ho un problema in esecuzione chiamato: Exception in thread "main" java.lang.NoClassDefFoundError:<NOMECLASSE>. ho letto che può nascere dal fatto che non abbia il file.class nella stessa cartella ma ho controllato e c'è. AIUTO PLEASE!

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    NoClassDefFoundError nasce quando manca una classe al CLASSPATH dell'applicazione (non c'entra nulla la cartella).
    Generalmente accade quando il progetto referenzia una classe che sta in una libreria, ma la libreria non è stata copiata col programma.
    Può nascere anche in un caso particolare: se, ad esempio, è stata settata la variabile d'ambiente CLASSPATH (io non lo faccio mai, perchè non ha alcun senso farlo) e questa non include tra i suoi percorsi la cartella dei compilati che si sta cercando di eseguire.

    In buona sostanza, se vuoi avere informazioni più precise devi prima di tutto darle tu:

    1) Hai un file JAR o i file .class sciolti?
    2) Se sono file .class sciolti, dove sono?
    3) Dove ti posizioni al momento del lancio dell'applicazione?
    4) Hai settato la variabile CLASSPATH? Se sì, che valore ha?


    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

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2015
    Messaggi
    107
    No non credo ho due classi. java e due classi.class all'interno della stessa cartella, la stessa dalla quale mi posizione per lanciare il programma; non so come si fa a settare la variabile CLASSPATH (sono alle prime armi in programmazion) quindi non credo.

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Altra cosa, se hai usato la direttiva package allora per eseguire devi essere posizionato fuori dalla root del package e richiamare la classe mediante il suo fully-qualified-name. Esempio:

    codice:
    package pippo.pluto;
    
    public class Principale {
       ...
       public static void main(String[] args) {
          ...
       }
    }

    Il .class deve trovarsi dentro ad una directory chiamata "pluto". La directory "pluto" deve trovarsi dentro ad una directory chiamata "pippo". Tu per eseguire devi essere fuori dalla directory "pippo" (ovvero dentro la directory che contiene "pippo") e usare il seguente comando:

    codice:
    java pippo.pluto.Principale

    Se non è nemmeno questo il problema, allora posta le classi, le strutture di directory, la posizione da cui lanci e il comando che usi per lanciare.


    Ciao.
    Ultima modifica di LeleFT; 06-02-2015 a 18:16
    "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

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2015
    Messaggi
    107
    Potrebbe aiutarti il fatto che dopo Exception in thread "main" java.lang.NoClassDefFoundError, mi esca: Esercizio1 (wrong name: Eventoaula/Esercizio1) grazie del tuo aiuto

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2015
    Messaggi
    107
    qui le classi:

    codice:
    package Eventoaula;
    public class Evento {
    
        private int giorno;
        private int ora;
        private int durata;
        
        public Evento (int a, int b, int c){
            giorno=a;
            ora=b;
            durata=c;
        }
        
        public boolean Inserisco(Evento e){
            int dpe=this.ora+this.durata;
            int dse=e.ora+e.durata;
            boolean b=true;
            if (this.giorno==e.giorno){
                if(dpe>=e.ora || dse<=this.ora)
                    b=false;
            }
            return b;
            }

    seconda classe:

    codice:
    package Eventoaula;
    import java.util.*;
    import java.io.*;
    public class Esercizio1 {
     public static void main (String [] args) throws IOException {
    
     
     ArrayList <Evento> R = new ArrayList <Evento>();
     File ff = new File (args [1]); 
     Scanner sc = new Scanner (ff);
    Ultima modifica di LeleFT; 06-02-2015 a 18:23 Motivo: Aggiunti i tag CODE

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Sì, è come ho scritto sopra.
    Stai usando la clausola package.
    Nel tuo caso devi avere una directory chiamata "Eventoaula" con dentro i file .class.
    Tu devi posizionarti fuori da questa directory ed eseguire con il seguente comando:

    codice:
    java Eventoaula.Esercizio1

    PS: quando posti del codice, inseriscilo tra i tag [CODE] e [/CODE], per mantenere formattazione ed indentazione.


    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

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2015
    Messaggi
    107
    Non lo sapevo grazie mille! ora ho altri problemi ma non sto a farti perdere ancora tempo, grazie ancora!

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2015
    Messaggi
    107
    scusa il disturbo ancora ma ho un altro problema stavolta: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
    at Eventoaula.Esercizio1.main(Esercizio1.java:7)

  10. #10
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Con quanti argomenti chiami il main, da linea di comando? Non abbastanza a quanto pare
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

Tag per questa discussione

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.