创建.java文件,并在运行时将其编译为.class文件

创建.java文件,并在运行时将其编译为.class文件,java,compilation,runtime,Java,Compilation,Runtime,我正在使用XJC从XSD文件生成一大堆.java文件。我还需要将这些文件编译成.class文件,并在运行时通过反射使用它们 我遇到的问题是,在我生成.java文件并尝试编译它们之后,编译器无法正确编译它们,并给出以下错误: .\src\com\program\data\ClassOne.java:44: error: cannot find symbol protected List<ClassTwo> description; ^

我正在使用XJC从XSD文件生成一大堆.java文件。我还需要将这些文件编译成.class文件,并在运行时通过反射使用它们

我遇到的问题是,在我生成.java文件并尝试编译它们之后,编译器无法正确编译它们,并给出以下错误:

.\src\com\program\data\ClassOne.java:44: error: cannot find symbol
    protected List<ClassTwo> description;
                   ^
  symbol:   class ClassTwo
  location: class ClassOne

您是否尝试过查找同一主题的现有线程;


例如。

所以我终于明白了

显然,您可以一次将多个文件传递给编译器,这就解决了符号错误。这是一个多么简单愚蠢的解决方案

public static void compile(String... files) {
    JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
    compiler.run(null, null, null, files);
}
public static void compile(String... files) {
    JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
    compiler.run(null, null, null, files);
}