Pergunta

Existem outras que Janino opções para compiliation e execução de código Java no v5 on-the-fly? Eu sei v6 tem a API Compiler, mas eu preciso trabalhar com o v5 VM.

I essencialmente precisa tomar uma string contendo uma classe Java completo, compilá-lo e carregá-lo na memória.

Foi útil?

Solução

O que você quer é algo como Janino . Nós usamos isso há anos. Você dar-lhe código (perto standard) e dá-lhe as classes para que você possa usá-los. Ele realmente tem muito poucos modos diferentes e apoia a 1,5 açúcar sintático e auto-boxing e tal.

Se você chamar javac, não só você terá que estar pronto para qualquer coisa que ele faz, então você vai ter de lidar com colocando a classe no lugar certo ou fazer um carregador de classe adicional.

Janino é muito fácil. Deve ser exatamente o que você está procurando.

Outras dicas

Invocando javac programaticamente:

http: // www.juixe.com/techknow/index.php/2006/12/12/invoke-javac-at-runtime/

   com.sun.tools.javac.Main javac = new com.sun.tools.javac.Main();  

   String[] options = new String[] 
   {  
      "-classpath", classpath, "-d", outputDir, filename  
   };

   javac.compile(options);

Todos os servidores de aplicativos fazer isso por JSP para sempre, então obviamente é possível. Caixa tomcat código fonte talvez?

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