代码之家  ›  专栏  ›  技术社区  ›  Ryan Emerle

Java 5中动态编译的选项

  •  5
  • Ryan Emerle  · 技术社区  · 16 年前

    除了V5中的Java代码的执行和执行之外,除了Janino还有其他的选择吗?我知道V6有编译器API,但我需要使用v5 vm。

    本质上,我需要一个包含完整Java类的字符串,编译它并将其加载到内存中。

    3 回复  |  直到 10 年前
        1
  •  6
  •   MBCook    16 年前

    你想要的是 Janino .我们已经用了很多年了。你给它(接近标准的)代码,它给你类,这样你就可以使用它们。它实际上有很多不同的模式,支持1.5语法结构和自动装箱等等。

    如果您调用javac,那么不仅需要为它所做的任何事情做好准备,还需要处理将类放在正确的位置上或创建一个额外的类加载器。

    詹尼诺很容易。这应该正是你想要的。

        2
  •  5
  •   TofuBeer    16 年前

    以编程方式调用javac:

    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);
    
        3
  •  2
  •   Miserable Variable    16 年前

    所有的应用服务器都永远为JSP做这件事,所以很明显这是可能的。是否签出Tomcat源代码?