Я использую JavaCompiler для компиляции кода Java во время выполнения. По большей части это работает хорошо. Нет никаких исключений во время компиляции, это работает хорошо. Мне нужно, чтобы он скомпилировал класс с аннотацией @Entity. Тем не менее, я получаю сообщение «Ошибка в строке 3 - ожидается ожидаемый класс, интерфейс или перечисление».
Это мой класс сущности:
@Entity
public class Contact {
@Getter @Setter
private String FirstName;
@Getter @Setter
private String LastName;
}
Вот как я использую JavaCompiler для его компиляции:
List<String> optionList = new ArrayList<String>();
optionList.add("-classpath");
optionList.add(System.getProperty("java.class.path"));
Iterable<? extends JavaFileObject> compilationUnit
= fileManager.getJavaFileObjectsFromFiles(Arrays.asList(newClassFile));
JavaCompiler.CompilationTask task = compiler.getTask(
null,
fileManager,
diagnostics,
optionList,
null,
compilationUnit);