HTML.it è il sito italiano del web publishing

NoClassDefFoundError e CLASSPATH



scegli un altro forum
    Indietro   Ricarica   Avanti Invia una risposta

Autore
Discussione     
foralobo
Utente di HTML.it



Registrato il: Feb 2011

Provenienza:

Messaggi: 81


ICQ:

MSN: foralobo@inwin d.it

Skype: foralobo


NoClassDefFoundError e CLASSPATH
Salve a tutti il mio problem è probilmente molto banale:
Sto facendo un progetto che consiene diverse classi.

Premetto che uso eclipse.

La struttura è la seguente:

CartellaPrincipale
---CartellaMain
------CartellaSecondaria1
------CartellaSecondaria2

dove:
CartellaPrincipale: equivale alla radice. per intenderci al (default package) del progetto.

Ho creato un package interno alla cartella principale (CartellaMain) per mettere il main e fare scomparire il "default package" dalla struttura di eclispe.

il programma funziona se lo mando in esecuzione da eclipse ma se tento di eseguirlo da terminale mi da questo errore:

codice:
 Exception in thread "main" java.lang.NoClassDefFoundError: nomeClasseCheEseguo (wrong name: CartellaMain/nomeClasseCheEseguo) 


per eseguirlo da terminale mi porto prima nella cartella CartellaMain (ovviamente della parte del bin dove ci sono i file compilati) ed eseguo java nomeClasseCheEseguo

Dopo aver fatto alcune ricerche in internet ho compreso che questo errore è relativo al fatto che il classpath non punta alla cartella e bisogna aggiungere allo stesso la cartella corrente (.). Ma le variabili sono settate bene e quello che ho potuto comprendere dopo alcune prove è che portando il main nella cartellaPrincipale (default pacjkage di eclipse) il programma parte.

Da un punto di vista strutturale, mettere il main nella cartella radice mi sembra ovvio. Ma vi chiedo:
è cosi che si fa (cioè è normale tenere il default package)? il main deve per forza stare li?
oppure posso creare una cartella sotto la radice e mettere il main (magari modificando la variabile CLASSPATH ma in questo modo funzionerà sugli altri pc)?

Il problema (se cosi lo si può chiamare) mi si verifica su ubuntu 12.04 e su xp

grazie tante

Segnala ad un moderatore | IP: Collegato | Permalink

foralobo è offline Old Post 15-07-2012 17:40
Clicca qui per vedere il profilo dell'utente foralobo Clicca qui per inviare all'utente foralobo un messaggio privato Visualizza ulteriori messaggi scritti dall'utente foralobo Aggiungi l'utente foralobo alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
Alex'87
Utente di HTML.it



Registrato il: Aug 2001

Provenienza: Verona (provincia)

Messaggi: 4634


ICQ :

MSN :

Skype :


Re: NoClassDefFoundError e CLASSPATH
Il main può essere ovunque.

Se tu hai questo path:

codice:
C:\cartella_progetto\pkgA\pkgB\Main.class


(con il file Main.java contenente la dicitura package pkgA.pckB;)

per eseguire da terminale dovrai portarti dentro cartella_progetto e da lì dare il comando

codice:
java pkgA.pkgB.Main


__________________
NO M.P. TECNICI
twitter
last.fm

SpringSource Certified Spring Professional

Ultima modifica ad opera dell'utente Alex'87 il 16-07-2012 alle 08:23

Segnala ad un moderatore | IP: Collegato | Permalink

Alex'87 è offline Old Post 16-07-2012 08:19
Clicca qui per vedere il profilo dell'utente Alex'87 Clicca qui per inviare all'utente Alex'87 un messaggio privato Visita l'homepage dell'utente Alex'87 Visualizza ulteriori messaggi scritti dall'utente Alex'87 Aggiungi l'utente Alex'87 alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
foralobo
Utente di HTML.it



Registrato il: Feb 2011

Provenienza:

Messaggi: 81


ICQ :

MSN : foralobo@inwin d.it

Skype : foralobo


Re: Re: NoClassDefFoundError e CLASSPATH
Citazione:
(con il file Main.java contenente la dicitura package pkgA.pckB;)

per eseguire da terminale dovrai portarti dentro cartella_progetto e da lì dare il comando

codice:
java pkgA.pkgB.Main


ho fatto diverse prove anche dalla cartella principale del progetto ma nn andava perche usavo i package come cartelle scrivevo:

su windows:
codice:
 nomePackage\nomeclasse 


invece dei punti. Grazie tante

Segnala ad un moderatore | IP: Collegato | Permalink

foralobo è offline Old Post 16-07-2012 09:43
Clicca qui per vedere il profilo dell'utente foralobo Clicca qui per inviare all'utente foralobo un messaggio privato Visualizza ulteriori messaggi scritti dall'utente foralobo Aggiungi l'utente foralobo alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
Tutte le ore sono con fuso orario CET. Ora sono le 06:56.     

    Ultima discussione   Prossima discussione Invia una risposta
Versione per la stampa | Invia il thread via email | Ricevi aggiornamenti sul thread | Scarica il thread
 

Cerchi un argomento specifico e hai fretta? Usa il motore di ricerca