2010-08-10 12 views

risposta

6

Il problema è che la destinazione predefinita include molti pacchetti che non hanno nulla a che fare con il pacchetto - digitando il comando ss quando tutti i messaggi di errore sono terminati li elencherà.

Ecco cosa dovete fare:

  1. In Eclipse, andare in Preferenze> Plug-in di sviluppo> Piattaforma di destinazione
  2. creare una nuova definizione di destinazione vuota
  3. Nella scheda Località, aggiungere una directory contenente nient'altro che il pacchetto Equinox (che puoi copiare dalla directory dei plug-in della tua installazione Eclipse, il jar è chiamato qualcosa come org.eclipse.osgi_3.7.0.v20110613.jar)
  4. Assicurati che il nuovo target sia attivo e prova a correre il tuo pacco di nuovo
0

Prima verifica le dipendenze del plug-in vuoto. Potrebbe essere che manchi di aggiungere un plugin, che non è caricato in fase di runtime.

Se si dispone di dipendenze nel proprio plug-in, controllare quale versione dei plugin viene utilizzata.

Quale versione Java è stata definita nel plug-in? È superiore alla versione che stai utilizzando in fase di runtime?

Il plug-in è in fase di caricamento delle DLL? in tal caso, controllare se la DLL può essere trovata in fase di runtime.

Edit:

# Workbench non è stato ancora creato. # a org.eclipse.ui.PlatformUI.getWorkbench (PlatformUI.java:92) # a org.eclipse.mylyn.internal.monitor.ui.MonitorUiPlugin.start (MonitorUiPlugin.java:145)

Cosa hai definito nel metodo di avvio di Activator? E 'sem, che stai usando il workbench che non è ancora stato creato.

+0

è assolutamente vuoto plug-in –

+0

Questo è il mio attivatore http://pastebin.com/6S8a8hnr –

3

Questo è il problema principale:

java.lang.IllegalStateException: Workbench non è stato ancora creato.

Si stanno utilizzando metodi/oggetti dal workbench o relativi al workbench mentre il workbench stesso non è stato ancora creato. Forse è possibile ritardare l'attivazione del pacchetto o rimuovere le dipendenze del workbench dalla parte di attivazione/inizializzazione del pacchetto.


Yikes, torna all'inizio. L'ultima riga del log contiene un "Hello World": è questo l'output atteso dal tuo bundle? Forse non è il tuo bundle che causa errori e avvertenze sull'output. Vedo anche alcuni "mylin" e altre cose. Se possibile, aggiungi un'altra installazione pulita di eclipse (senza bundle/plug-in aggiuntivi) al tuo sistema e prova il bundle in quell'ambiente.


Da un good article on eclipsezone:

Questo avviene di solito quando qualcuno tenta di eseguire un'applicazione Java contro un fascio di OSGi con java -classpath ..... Significa davvero che il plug-in del workbench non è ancora stato avviato e quindi le chiamate a getWorkbench() falliscono. Questa è essenzialmente una condizione di competizione, e può essere risolta esprimendo una dipendenza esplicita su quel bundle o rimbalzando quel bundle a un higher start level rispetto al workbench. Generalmente non visto, ma se lo è, è quello che sta succedendo.

Qual è la superclasse del proprio pacchetto? Perché ciò potrebbe introdurre una dipendenza dal banco di lavoro.

E - come si fa a "avviare" il pacchetto, dall'interno di eclipse o hav è stato inserito e inserito nella cartella del plugin di eclissi? Anche questo potrebbe fare la differenza.

+0

Sai, come risolverlo? –

+0

Sì, "Hello World viene emesso da myndle. Ho scaricato il nuovo Eclipse - sono gli stessi errori :( –

0

Provate a fare questo prima di eseguire il proprio bundle:

if(!PlatformUI.isWorkbenchRunning()) { 
    PlatformUI.createAndRunWorkbench(PlatformUI.createDisplay(), new WorkbenchAdvisor() {...}); 
} 
2

Nessuno di questi errori ha nulla a che fare con il vostro pacco. Come puoi vedere dall'output di "Hello World", il tuo bundle sta iniziando bene.

Credo che stai lanciando Eclipse nel modo sbagliato, probabilmente attivando impazientemente tutti i pacchetti. Eclipse deve iniziare con la maggior parte dei pacchetti workbench in modalità "lazy activation".

  1. Specificare come avviare Eclipse. Hai aggiunto -console al file eclipse.ini?
  2. Questo problema si verifica quando NON si tenta di utilizzare il proprio pacchetto?
  3. Come si installa e si attiva il proprio pacchetto?
  4. Si prega di incollare i seguenti file:
    • Il MANIFEST.MF dal proprio fascio
    • config.ini da ECLIPSE_HOME/configuration
    • eclipse.ini da ECLIPSE_HOME
5

Ho faticato molto per "Il workbench non è ancora stato creato" il giorno completo.

Ma ho avuto la soluzione dai seguenti punti .-

  1. Vai alla configurazione Run -> Rimuovi tutti i barattoli piattaforma di destinazione.
  2. Fare clic su Aggiungi pacchetti richiesti.
  3. Controllare org.apache.felix.gogo.runtime, org.apache.felix.gogo.shell, org.eclipse.eqinox.console, org.eclipse.osgi e il file jar.
  4. L'ultimo e importante passaggio. Passare a Setting->controllare la casella di controllo di "Cancellare l'area di configurazione prima di avviare".
  5. Eseguire l'applicazione OSGi ora.
  6. Divertiti se funziona per te come ha funzionato per me.

Grazie

+0

dove è "aggiungi pacchetti richiesti"? – Anthony

Problemi correlati