2012-06-01 18 views
5

En mi plugin de Eclipse personalizado, tengo el nombre de clase totalmente calificado de una clase de Java como cadena, y quiero saber su ruta de archivo real. De hecho, quiero saber el nombre de la carpeta de origen en la que reside.¿Cómo se determina la ruta absoluta del archivo de un archivo fuente Java en el plugin de Eclipse?

La clase podría ser de cualquiera de los proyectos de Java en el área de trabajo. Los nombres de la carpeta de origen son arbitrarios.

Uso Eclipse 3.6.

Gracias!

Respuesta

2

Deberá utilizar la API del motor de búsqueda. Ver org.eclipse.jdt.core.search.SearchEngine.

Puede ver que hay varias funciones estáticas que puede llamar, cada una con sus propias opciones. Tendrá que crear un org.eclipse.jdt.core.search.SearchPattern apropiado y luego pasarlo al motor de búsqueda junto con un alcance (el espacio de trabajo) y un solicitante (algo que reúna todos los resultados).

Por lo general, obtendrá un montón de cosas atrás, como IType s, que son la API pública para acceder a los tipos en el modelo de Java. Puede llamar al IType.getResource().getLocation() para obtener la ubicación del sistema de archivos de cualquier tipo. El método getResource puede devolver nulo, por lo que debe verificarlo.

+0

¡Gracias! Esto suena muy prometedor. Podré probarlo el lunes y avisarle si funciona. ¿Puedes recomendar un método particular de "SearchEngine"? –

+0

El cuadro de diálogo Abrir tipo (Control + Shift + T) Utiliza el mismo SearchEngine. – Ravi

+0

@Ravi Sí, ¡eso es lo que esperaba! Por cierto, ¿puedo simplemente crear una nueva instancia de la clase 'SearchEngine', o debo obtenerla de alguna fábrica de Eclipse? –

2

Tendrá que usar el JDT API stuff para obtener el IResource de la clase Java. Desde allí, puede usar Resource API para obtener las carpetas que lo contienen y todo lo que necesite.

Cuestiones relacionadas