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?
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.