动态编译类并存储在构建文件夹中

时间:2014-03-13 19:31:26

标签: java dynamic compilation

我目前正在使用NetBeans创建一个程序,允许用户编写和执行自己的代码。到目前为止,我有这个方法,我用它来编译他们的代码:

public boolean compileClass(String userClassName){

    int compilationResult = compiler.run(null, null, null, "src/uk/learningAid/UserInputs/"+userClassName+".java");

        if(compilationResult == 0){
            System.out.println("Compilation Successful");
            return true;
        }else{
            System.out.println("Compilation Failed");
            return false;
        }
}

但是,这会在与.class文件夹中的.java文件相同的包中创建src文件,并在.class文件夹中创建build文件。我想要的只是.class文件夹中只有build而不是src文件夹。

此外,如果用户键入要执行的新代码,则上述方法将在.class文件夹中创建用户代码的新src表示,但不会更新.class文件夹中的build

1 个答案:

答案 0 :(得分:0)

您可以使用Maven嵌入器API并采用Maven项目结构(或通过pom.xml文件定义您自己的结构)。

http://maven.apache.org/ref/3-LATEST/maven-embedder/index.html