2010-08-10 17 views

Respuesta

6

El problema es que el destino predeterminado incluye muchos paquetes que no tienen nada que ver con su paquete - escribiendo el comando ss cuando todos los mensajes de error hayan terminado, los listará.

Esto es lo que hace:

  1. En Eclipse, vaya a Preferencias> Desarrollo de plugins> Plataforma de destino
  2. Crear una nueva definición de destino vacío
  3. En la pestaña Ubicaciones, añadir un directorio que contiene nada más que el paquete Equinox (que puede copiar desde el directorio de complementos de su instalación de Eclipse, el archivo jar se llama algo así como org.eclipse.osgi_3.7.0.v20110613.jar)
  4. Asegúrese de que el nuevo destino esté activo e intente ejecutar su paquete nuevamente
0

Primero compruebe las dependencias del complemento vacío. Puede ser que falte agregar un complemento, que no se carga en tiempo de ejecución.

Si tiene dependencias en su complemento, compruebe qué versión de los complementos se utilizan.

¿Qué versión de Java ha definido en su complemento? ¿Es más alto que la versión que estás usando en tiempo de ejecución?

¿Su plugin carga los archivos DLL? si es así, compruebe si la DLL se puede encontrar en tiempo de ejecución.

Editar:

# Workbench no se ha creado todavía. # en org.eclipse.ui.PlatformUI.getWorkbench (PlatformUI.java:92) # en org.eclipse.mylyn.internal.monitor.ui.MonitorUiPlugin.start (MonitorUiPlugin.java:145)

¿Qué definiste en el método de inicio del Activador? Parece que estás usando el banco de trabajo que aún no está creado.

+0

Es absolutamente vacío plug-in –

+0

Esta es mi activador http://pastebin.com/6S8a8hnr –

3

Este es el principal problema:

java.lang.IllegalStateException: Banco de trabajo no se ha creado todavía.

Está utilizando métodos/objetos del banco de trabajo o relacionados con el banco de trabajo, mientras que el propio banco de trabajo aún no se ha creado. Tal vez pueda retrasar la activación del paquete o eliminar las dependencias del 'entorno de trabajo' de la parte de activación/inicialización del paquete.


Yikes, regreso al principio. La última línea del registro contiene un 'Hola mundo': ¿es este el resultado esperado de su paquete? Tal vez no es tu paquete el que causa los errores y advertencias en la salida. Veo algunos 'mylin' y otras cosas también. Si es posible, agregue otra instalación limpia de eclipse (sin paquetes adicionales/complementos) a su sistema y pruebe el paquete en ese entorno.


Desde un good article on eclipsezone:

Esto generalmente viene cuando alguien intenta ejecutar una aplicación Java contra un paquete OSGi con java -classpath ..... Realmente significa que el complemento del banco de trabajo aún no se ha iniciado, por lo que las llamadas a getWorkbench() fallan. Esto es esencialmente una condición de carrera, y se puede resolver expresando una dependencia explícita en ese paquete o cambiando ese paquete a un higher start level que el banco de trabajo. Generalmente no se ve, pero si lo es, eso es lo que está sucediendo.

¿Cuál es la superclase de su propio paquete? Porque eso podría introducir una dependencia en el banco de trabajo.

Y, ¿cómo 'iniciar' el paquete, desde dentro de un eclipse o hav, lo ha subido y lo ha puesto en la carpeta del complemento eclipse? Eso también podría marcar la diferencia.

+0

sabe usted, ¿cómo se puede solucionar? –

+0

Sí, 'Hello World sale de mi byndle. He descargado un nuevo Eclipse - son los mismos errores :( –

0

Trate de hacer esto antes de ejecutar el paquete:

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

Ninguno de esos errores tiene nada que ver con su paquete. Como puede ver en el resultado "Hello World", su paquete está comenzando bien.

Creo que está iniciando Eclipse de forma incorrecta, probablemente activando ansiosamente todos los paquetes. Eclipse necesita comenzar con la mayoría de los paquetes del banco de trabajo en el modo de "activación diferida".

  1. Especifique cómo va a ejecutar Eclipse. ¿Agregó -console al archivo eclipse.ini?
  2. ¿Este problema ocurre cuando NO intenta utilizar su propio paquete?
  3. ¿Cómo está instalando y activando su propio paquete?
  4. Por favor, pegue los siguientes archivos:
    • El MANIFEST.MF de su propio paquete
    • config.ini de ECLIPSE_HOME/configuration
    • eclipse.ini de ECLIPSE_HOME
5

Luché mucho por "El banco de trabajo no se ha creado todavía" el día completo.

Pero tengo la solución mediante los siguientes pasos .-

  1. Ir a la configuración Run -> Eliminar todos los frascos plataforma de destino.
  2. Haga clic en Agregar paquetes necesarios.
  3. Compruebe org.apache.felix.gogo.runtime, org.apache.felix.gogo.shell, org.eclipse.eqinox.console, org.eclipse.osgi y su archivo jar.
  4. El último y importante paso. Vaya a Configuración->marque la casilla de verificación "Despeje el área de configuración antes de iniciar".
  5. Ejecute la aplicación OSGi ahora.
  6. Disfrútalo si funciona para ti, ya que funcionó para mí.

Gracias

+0

donde está 'agregar los paquetes necesarios'? – Anthony

Cuestiones relacionadas