Dynamic Class loading / Plugins

1 resposta
G

Fala Galera…
Sou novo no forum! Gostei bastante. Bem completo…
Parabens aos admins.

Bom, to com uma duvida e preciso de ajuda…

Eu tenho lá meu programa desktop rodando atraves da chamada do java.exe passando minha classe de entrada como parametro.

Até aí tudo tranquilo.

Entao vamos supor que, dentro da minha estrutura de pacotes, exista um diretorio reservado aos plugins.

O que vem a ser esses plugins?
Sao classes - previamente compiladas, é claro - derivadas de uma outra classe ou interface já conhecida pelo nucleo do sistema.

Eu gostaria de saber como eu posso carregar e utilizar esses plugins EM RUNTIME. Ou seja, essas classes serao descarregadas nesse diretorio em algum momento enquanto o programa principal continua rodando…

MUITO MUITO grato!

Abracos, boas festas e um otimo ano de 2005 pra todo mundo!

1 Resposta

J

Bom… você vai ter que fazer isso através de reflexão kra… Basta apenas saber o nome completo das classes que estão nesta pasta…

Você disse que elas derivam de uma interface, por exemplo ITeste. Vamos supor que no diretório você saiba que o nome da classe que está lá é Testando.

Execute o seu programa da seguinte maneira:
java -classpath plugin;.\ sua.class.Main

E na classe Main faça o seguinte:

try {
	        ITeste t = (ITeste) Class.forName("Testando").newInstance();
	        // Chame os métodos da interface aki...
        } catch (Exception e) {
            e.printStackTrace();
        }

Espero ter ajudado…

Criado 23 de dezembro de 2004
Ultima resposta 31 de dez. de 2004
Respostas 1
Participantes 2