Pregunta

Estoy ejecutando el siguiente código:

import org.eclipse.core.resources.IWorkspace;
import org.eclipse.core.resources.ResourcesPlugin;

public class WorkspaceTest {
    public static void main(String[] args) {
        IWorkspace workspace = ResourcesPlugin.getWorkspace();
    }
}

y obtengo el siguiente error:

Exception in thread "main" java.lang.IllegalStateException: Workspace is closed.

¿Cómo puedo obtener una referencia al espacio de trabajo para un complemento que no sea eclipse?

(Para poder ejecutar el código aquí :)

http: //www.ssw.uni -linz.ac.at/Teaching/Lectures/KompTech/JDT.pdf

¿Fue útil?

Solución

Primero, simplemente puede significar que no se está ejecutando con Eclipse, sino con una aplicación Java estándar.

Para un complemento de eclipse, es necesario que no lo llame demasiado pronto (como antes de crear el espacio de trabajo). Es decir, para un complemento que no sea eclipse, es posible que de alguna manera deba crear un espacio de trabajo, ya que no podrá hacer referencia a los que ya están presentes en eclipse.

Además, debe asegurarse de no tener org.eclipse.core.resources en la ruta de compilación, sino un complemento dependiente en el archivo manifest.mf del complemento. (consulte este hilo )
Por lo tanto, el eclipse no instanciaba el ResourcePlugin (aunque aún podría haber realizado llamadas a la clase ResourcePlugin con el código).

Consulte también esta respuesta para otras ideas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top