如何在Java中复制和操作源代码

时间:2015-11-30 10:30:28

标签: java

有没有办法在Java中执行类似下面的示例?

public class HandleCode
{
    public static void main(String[] args)
    {
        String someCode = "System.out.println(aNumber);";

        int aNumber = 123;

        pasteCode(someCode); // Here we somehow tell Java to paste in at pre-compile time the text that is stored in someCode and treat it as source-code text.
    }

    private static void pasteCode(String code)
    {
        // Method code here
    }
}

此假设代码将打印:123

是否有这样的方法来编写pasteCode方法在Java中执行此操作?由于一些预编译命令,我知道在C ++中可以做到这一点,但我想知道如何在Java中完成。

1 个答案:

答案 0 :(得分:1)

您可以使用ScriptEngine(Manager)来获取JavaScript引擎来执行此操作。但是在java中,一旦编译,你的字符串的标签“someCode”就不再存在。

此链接说明了如何操作:

https://docs.oracle.com/javase/7/docs/technotes/guides/scripting/programmer_guide/