5

Ho un progetto che ho sviluppato in Eclipse 3.7.2 su Ubuntu 12.04. Recentemente, ho ristrutturato la gerarchia delle classi che prevedeva lo spostamento delle classi tra i pacchetti. Non ho spostato la mia classe principale ("ob3.converter.Converter"), che contiene il mio metodo public static void main(String[] args).Progetto Broken Eclipse - classNotFoundException - impossibile trovare la classe principale

Ora, quando si tenta di eseguirlo, ottengo:

Exception in thread "main" java.lang.NoClassDefFoundError: ob3/converter/Converter 
Caused by: java.lang.ClassNotFoundException: ob3.converter.Converter 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266) 
Could not find the main class: ob3.converter.Converter. Program will exit. 

Ho sempre e solo realmente lavorato (in java) con Eclipse, che gestisce tutte le spese generali per me - quindi ho poco comprensione di questo errore o cosa potrebbe causarlo. Ho controllato la mia Run Configuration/Classpath etc ma senza sapere cosa cercare, è stato infruttuoso.

Qualcuno potrebbe indicarmi la giusta direzione? Ho cercato su Google/ricerca SO, e molte cose parlano di un file manifest, ma non sono riuscito a trovarlo da nessuna parte. La mia cartella dello spazio di lavoro non contiene nient'altro che i miei file di origine.

posso verificare:

  • La classe "Converter" esiste all'interno del pacchetto "ob3.converter".
  • La classe "Convertitore" contiene un metodo public static void main(String[] args).
  • La scheda "Origine" nella pagina Percorso build Java in Proprietà progetto mostra "converter/lib" e "converter/src" - queste 2 cartelle contengono l'intera origine del progetto.
  • Il JRE utilizzato in Run Configuration/JRE è "java-6-openjdk-amd64".
  • La scheda ClassPath nella configurazione di esecuzione assomiglia a questo:
    • bootstarp Entrate:
      • JRE Sistema Bibliotecario [java-6-openjdk-amd64]
    • voci utente:
      • convertitore (percorso di classe predefinito)
        • convertitore
  • Il cammino verso Converter.java non è cambiato dall'ultima volta che ho eseguito con successo.

Qualsiasi aiuto è molto apprezzato!

+0

Se è possibile pubblicare uno screenshot dell'eclipse con la struttura del pacchetto espansa e la classe del convertitore aperta nell'editor. Il tuo progetto mostra qualche errore nel pacchetto explorer? Qualche errore nella vista Problemi? – devang

+4

Hai provato i trucchi standard per gestire uno spazio di lavoro Eclipse "confuso"? Aggiorna (F5) l'area di lavoro. Riavvia Eclipse. Chiudi/apri il progetto. Elimina il progetto (NON controllare l'eliminazione dal disco !!!) e reimportalo. –

+0

Quando dici di correre, presumo che tu stia facendo clic sull'icona della corsa in alto. Prova a fare clic destro sulla classe del convertitore nella visualizzazione pacchetto e seleziona Esegui come -> applicazione java. –

risposta

2

Penso che dovresti ricostruire il tuo progetto. Puoi farlo cliccando su Progetti> Pulisci ...

A volte la compilazione automatica di Eclipse ha problemi con il refactoring o lo spostamento delle classi.

0

Mi sono imbattuto in questo stesso messaggio di errore. Per quanto mi riguarda, ero su linux e l'utente che ha emesso il comando java non disponeva di autorizzazioni sufficienti per la directory dei jar sul classpath.

Problemi correlati