Inferno classloader di Eclipse rcp: classe spostata ancora visibile in fase di compilazione ma non in fase di esecuzione

StackOverflow https://stackoverflow.com/questions/1206795

Domanda

Ho uno strano e nuovo problema con un'applicazione rcp di eclipse 3.5: tutto ha funzionato bene, quindi ho cambiato il sistema in esecuzione e ho spostato una singola classe da un plug-in a un plug-in dipendente. Nessun grosso problema, ma all'improvviso l'applicazione si lamenta di un'eccezione di classe non trovata (o NoClassDefFoundError - non lo so esattamente ma lo cercherà e modificherà il post ...)

Ho raddoppiato, triplo, ... ho verificato tutto quello che so, e mi sono assicurato che manifest avesse la dipendenza con il numero di versione corretto e che il pacchetto fosse correttamente esportato nell'altro plugin. Eclipse jdk non si lamenta (nessun errore / avviso del compilatore) ma quando eseguo il debug al punto in cui la classe viene istanziata e utilizzo 'CTRL + MAIUSC + I' per ispezionare la 'nuova dichiarazione MyClass ()', la descrizione degli ispettori dice , che non può risolvere quella classe.

Qualsiasi aiuto, suggerimento e commento incoraggiante è molto apprezzato!

È stato utile?

Soluzione 2

Risolto il problema solo per caso (e non ho la più pallida idea se si trattasse di un bug o di una funzione ...):

Il progetto del plug-in, in cui ho spostato la classe, aveva una struttura di cartelle simile a quella di Maven con src / main / java e src / test / java, entrambe cartelle definite come cartelle di origine.

Solo perché volevo provare quasi tutto, ho cambiato questa struttura tornando alla tipica struttura di eclissi con solo src come singola cartella di origine.

E, dopo un altro 'progetto pulito', è di nuovo in esecuzione. Strano ...?

Modifica

grazie per il suggerimento, la struttura delle cartelle era solo un refuso in questo post.

Dopo molte altre lotte, sono abbastanza sicuro che si sia trattato di un problema di eclissi. Dopo aver "risolto" come sopra, il giorno successivo l'applicazione non è riuscita a caricare altre classi dal file stesso plugin e penso che, dopo un riavvio del workbench di Galileo, i problemi siano spariti.

Altri suggerimenti

Ho anche incontrato un NoClassDefFoundError in un'app RCP Galileo Eclipse 3.5 in cui avevo una cartella src / java in un plugin e avevo bisogno di esportare un pacchetto per usarlo da un altro plugin.

La soluzione per me si è rivelata includere la cartella bin come parte del percorso della classe di runtime. Normalmente è stato necessario solo includere il file. cartella.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top