Pessoal estou com a seguinte dificuldade no desenvolvimento de um plugin para eclipse, como eu pego o caminho de um diretório que faz parte do projeto em tempo de runtime? Ou seja, eu tenho uma pasta templates dentro do projeto, e quero pegar o caminho completo dela no momento da execução, tentei usar getClassLoader… mas não rolou, se alguém tiver uma sugestão, agradeço.
Pegar caminho relativo - Plugin Eclipse
2 Respostas
O Eclipse, a partir da versão 3.0, utiliza uma arquitetura padronizada de gerenciamento de componentes para os seus plugins. Essa arquitetura, bem documentada, é baseada numa especificação da OSGi (www.osgi.org) e a implementação utilizada no Eclipse chama-se Equinox. Via de regra, esses gerentes de componentes disponibilizam, aos componentes implantados, uma representação uniforme e abstrata de um sistema de arquivos. Não por coincidência, essa representação reflete a estrutura de diretórios/arquivos do componente no sistema de arquivos real.
Os componentes que são gerenciados pelo Equinox têm à sua disposição um cara chamado ResourceBundle. O ResourceBundle do seu plugin pode ser acessado por:
ResourceBundle.getBundle(<id do plugin>);
A partir daí, você acessa os subdiretórios via:
URL umaURL = bundle.getEntry("/umsubdiretório/umArquivo");
E pronto.
Abraços,
Fala camarada, parece que a API de desenvolvimento mudou um pouco, ou como sou total marinheiro de primeira viagem nessa empreitada de plugin, não consegui realizar o que você me sugeriu, mas o que você disse já foi bem útil para que eu pesquisasse suas dicas e conseguisse chegar a solução, que ficou assim:
String relativePath = BundleUtil.getResolvedBundleLocation("PluginID");
Realmente valeu, pois eu tava procurando em fórums do próprio eclipse e parece que é uma dúvida generalizada sobre o assunto, até cheguei a pesquisar em http://help.eclipse.org, http://wiki.eclipse.org e no santo google, mas nada, valeu!