2009-06-07 6 views
9

consigo este error al intentar conseguir el espacio de trabajo a través ResourcesPlugin:"espacio de trabajo está cerrado" excepción al intentar conseguir el espacio de trabajo a través ResourcesPlugin

java.lang.IllegalStateException: Workspace is closed. 
at org.eclipse.core.resources.ResourcesPlugin.getWorkspace(ResourcesPlugin.java:339) 

El código que genera esto es:

IWorkspace ws = ResourcesPlugin.getWorkspace(); 

¿Puedes ayudarme con este problema?

+0

Jut completado mi respuesta con más detalles sobre las características del espacio de trabajo. – VonC

Respuesta

14

¿Su Manifest.MF contiene el org.eclipse.core.resources en la sección Require-bundle?

¿Y ejecuta su prueba como un complemento? (no como una 'Aplicación Java')

Véase también this thread.

Como se menciona en la página de ayuda "Resources and the file system",

Se puede acceder al espacio de trabajo de los recursos plug-in de clase (definida en org.eclipse.core.resources).

Cuando el complemento de recursos no está en ejecución, el espacio de trabajo existe únicamente en el sistema de archivos y es visto o manipulado por el usuario a través de herramientas estándar basadas en archivos. Veamos cómo se ve un espacio de trabajo en el disco a medida que explicamos la API del complemento de recursos.


De this book:

El directorio de espacio de trabajo, independientemente del nombre definido con la opción -data invocación, tiene dos funciones:

  • que actúa como el padre de la .metadata directorio
  • y como la ubicación predeterminada para proyectos

la lata espacio de trabajo contiene proyectos sólo cuando:

  • el plugin org.eclipse.core.resources se incluye en la configuración y
  • y apropiadamente comenzó a partir de la mesa de trabajo

esto es automático a partir de un IDE configuración basada en la aplicación org.eclipse.ui.ide.workbench.

Ver también this thread y recordar que:

el espacio de trabajo es un espacio de trabajo diferente del tiempo de ejecución-espacio de trabajo que se utiliza para probar los plugins. Cuando ejecuta Ejecutar en un entorno Eclipse PDE, crea un nuevo espacio de trabajo que está completamente vacío.

La opción de inicio de prueba workspace root can be specified through the "-data".

Si desea acceder a un archivo, lo mejor es incluir en el propio plugin, y luego usar getClass().getResourceAsStream("/myfile.txt") para obtener una InputStream que se puede leer el contenido de.

+0

El archivo Manifest.MF contiene org.eclipse.core.resources en la sección Require-bundle. Pero no quiero ejecutar la aplicación como un complemento. No estoy tratando de crear un plugin. Solo para hacer uso del analizador AST en eclipse. ¿Puedo resolver este problema y aún ejecutar el programa Java como una aplicación? –

+0

Como aplicación Java, no puede usar las funciones de ResourcePlugin. Por lo tanto, debe acceder a los recursos a través de recursos de archivos más clásicos. – VonC

+0

Además, olvidé decir que encontré la página web fisrt yo mismo y he hecho lo que allí se sugiere. Ans todavía no funcionó. Si utilizo la clase ResourcesPlugin de org.eclipse.core.resources, en el método getWorkspace() el espacio de trabajo es nulo. Es por eso que se lanza la excepción. ¿Por qué está pasando esto? ¿Dónde se establece el espacio de trabajo? –

Cuestiones relacionadas