Pergunta

Estou prestes a começar a desenvolver um pequeno aplicativo Java Desktop. O aplicativo é apenas um mecanismo para o qual o usuário fornece a classes Java para fazer o trabalho (traduzindo a entrada em saída).

Gostaria que o usuário forneça classes Java reais como arquivos que podem ser carregados (e recarregados) em tempo real.

Para este uso em particular, Existe alguma razão pela qual Java seria mais pesado do que Groovy ou Beanshell? Não estou pedindo uma comparação de Groovy/Beanshell e Java, pois há muitos. Pelo contrário, eu quero saber Se for mais fácil carregar dinamicamente as classes groovy ou beanshell de arquivos Comparado ao Java.

Para Java 1.6, é o Javacompiler A melhor maneira de carregar o código dinamicamente? Eu gostaria de usar todos os recursos do idioma, então acho que Janino está fora. Além disso, algum problema de recarregar?

Nota: eu vi isto e isto, mas não tenho certeza se eles respondem à minha pergunta.

Foi útil?

Solução

Javacompiler é muito versátil, mas implica um problema de configuração menor e potencial: em Javax.Tools, ToolProvider.getsystemjavacompiler () identifica a classe do compilador como com.sun.tools.javac.api.JavacTool. Em algumas plataformas, essa classe não faz parte do JRE; Um JDK parece ser necessário. Aqui está um exemplo.

Considere também javax.script, discutido aqui. Diversos Motores de script são suportados.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top