Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    81

    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

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

    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
    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
    Feb 2011
    Messaggi
    81

    Re: Re: NoClassDefFoundError e CLASSPATH

    (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

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.