Невозможно скомпилировать аннотации, такие как @Entity, используя JavaCompiler - PullRequest
0 голосов
/ 04 мая 2019

Я использую 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);

1 Ответ

0 голосов
/ 05 мая 2019

решаемая.Похоже, мне просто нужно было добавить api jar-файл сохраняемости при сборке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...