Lendo Metodos de outro pacote como Plugin

:smiley: Estou desenvolvendo um projeto e gostaria que quando o mesmo estivesse pronto, fosse possivel acrescentar novos modulos colocando em um diretorio pre-definido o pacote com o modulo. E na proxima vez que o sistema fosse aberto ele pudesse executar o modulo que acabou de ser instalado(como se fosse um plugin). Alguem pode me ajudar com esse problema?

Obrigado! :smiley:

Dê uma investigada na API de reflection, e na arquitetura de plug-ins do Eclipse (só pra ter um pouco de inspiração ;))

Minha sugest√£o:
Supondo que esses ‚Äúpacotes‚ÄĚ dos plugins sejam arquivos jar e que no Manifest dele esteja indicada a classe principal e o nome do m√©todo

  • Manter uma lista de ‚Äúplugins instalados‚ÄĚ e comparar com o conte√ļdo do diret√≥rio em quest√£o. Ao encontrar algo novo:
  • Utilizar a classe JarFile para abrir o arquivo e retornar o Manifest
  • Atrav√©s das classes Manifest / Attributes obter o nome da classe principal
  • Criar um objeto que represente a classe atrav√©s do Class.forName
  • Obter o m√©todo desejado (getDeclaredMethod) desta classe
  • Utilizar o invoke para execut√°-lo

Acho que vale a pena olhar também o Java Web Start. Ele não é exatamente para isso, mas talvez sirva.