Невозможно использовать javax.tools.JavaCompiler, когда lombok является зависимостью - получение NoClassDefFoundError [duplicate]

Чтобы указать очевидное, чаша представляет outerScopeVar.

Асинхронные функции будут выглядеть как ...

8
задан Stefano Bragaglia 3 September 2014 в 19:46
поделиться

1 ответ

Благодаря Хольгеру я успешно решил проблему.

Проблема была вызвана отсутствием tools.jar в пути класса. Это связано с тем, что Eclipse по умолчанию распознает среду Java как JRE вместо JDK.

Кроме того, Java JDK может - или не может, в зависимости от того, какая версия у вас есть - имеет файл tools.jar.

Если у вас есть Java 7 или 8, вы должны иметь такую ​​библиотеку в $JAVA_HOME/lib/tools.jar.

Если у вас есть Java 6, файл отсутствует, но ту же функциональность предоставляется $JAVA_HOME/Classes/classes.jar.

Компилятор - это функция, добавленная с помощью Java 6, поэтому, если вы хотите ее использовать, и у вас установлена ​​более старая версия Java, вы должны сначала обновить свою среду.

Теперь есть несколько способов включить tools.jar (или classes.jar) в путь к вашему проекту; поскольку я использую gradle, я решил представить его как зависимость, как вы можете видеть в следующем фрагменте кода:

dependencies {
    compile files("${System.properties['java.home']}/../lib/tools.jar")
    compile 'org.projectlombok:lombok:1.14.4'
    testCompile 'junit:junit:4.11'
}

Надеюсь, это небольшое объяснение может помочь другим людям, столкнувшимся с подобной проблемой!

Приветствия!

6
ответ дан Stefano Bragaglia 28 August 2018 в 04:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: