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

Java 5中的动态编译选项

  •  7
  • Ryan Emerle  · 技术社区  · 17 年前

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

    我基本上需要获取一个包含完整Java类的字符串,对其进行编译并将其加载到内存中。

    3 回复  |  直到 11 年前
        1
  •  6
  •   MBCook    17 年前

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

    如果您调用javac,您不仅必须为它所做的任何事情做好准备,还必须处理将类放在正确的位置或制作额外的类加载器。

    Janino很容易。这应该正是你要找的。

        2
  •  5
  •   TofuBeer    17 年前

    以编程方式调用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    17 年前