Маотоху поделился решенной ошибкой: java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport не работает.
Маотоху поделился решенной ошибкой: java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport не работает.

🐯 Маотоху поделился решенной ошибкой: java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport не работает. have member field ‘com.sun.tools.javac.tree.JCTree qualid’ 🐛

краткое содержание: Сегодня фанат спросил Брата Кота, что он столкнулся с распространенной проблемой при разработке Java. Сообщение об ошибке: java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field 'com.sun.tools.javac.tree.JCTree qualid',Эта проблема особенно вероятна, если инструмент компиляции Java (javac) несовместим.,Особенно при интеграции кода, связанного с ИИ.

В этой статье подробно описаны причины и решения этой ошибки.,И как правильно настроить компиляцию Java Среда,Избегайте повторения подобных проблем.

Более Интегрированная разработка AI и Java Техническая информация, добро пожаловать к прочтению этой статьи! 🔥

🐯 1. Предыстория проблемы

В последнее время некоторые фанаты интегрируют один Модель искусственного интеллекта В процессе компиляции произошла следующая ошибка:

Язык кода:javascript
копировать
java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field 'com.sun.tools.javac.tree.JCTree qualid'

С чем обычно связана эта ошибка? Брат Мао проверил среду разработки вентилятора и обнаружил, что это произошло из-за Версия компилятора Javac несовместима с библиотеками, используемыми в проекте. вызвано.

🧐 1.1 В чем причина ошибки?

Эта проблема обычно возникает, когда Java-версия и Javac API изне соответствует。Конкретно,com.sun.tools.javac.tree да API инструмента Javac часть, следует Обновления версии JDK И постоянно меняется. Если вы используете Java-зависимости Требуется определенная версия Javac, но среда компиляции проекта не соответствует этой версии, что приведет к этой ошибке. NoSuchFieldError

Цитировать: Маотоху напоминает всем: «JDK и Сторонние библиотекиизпроблемы совместимости» даJavaпроект часто упускают из виду, но он подвержен ошибкам,особенныйдасуществоватьполе ИИ,Многие библиотеки зависят от конкретной изJDK-версии.


🐯2. Как решить эту проблему?

На приведенных выше этапах решения Брат Кот прошел Режим командной строки Представляем вам, как обновить или переключиться JDK Версия. Но да, многие застройщики будут существовать IDEA Разработано в Китае, IDEA. дав настоящее время популярныйиз Один из инструментов разработки,выключатель Среда компиляции и Операционная среда JDK да Общие операции.

Ниже Брат Кот шаг за шагом проведет вас по IDEA Настройки→Переключить JDK среда.

💡 2.1 Переключение версии JDK компиляции и запуска проекта в IntelliJ IDEA

IDEA Гибкость позволяет устанавливать разные настройки для разных проектов. JDK Версия. Это существование очень важно при разработке нескольких проектов, особенно с участием нескольких зависимостей версий и проектов. Давайте посмотрим на существование IDEA Как работать подробно.

🛠️ 2.1.1 Шаг 1. Проверьте и установите версию проекта JDK.
  1. Открыть проект:существовать IDEA середина Открытьтыиз Java проект.
  2. Нажмите на строку меню из File -> Project Structure(илиили используйте сочетания клавиш Ctrl + Alt + Shift + S)。
  3. существовать Project Structure окно, нажмите на левую сторону из Project
    • Здесь вы увидите текущий проект Project SDK параметры. Если проект в настоящее время использует JDK Версия не соответствует требованиям, можете нажать New… кнопка.
  4. Выберите правильный JDK Версия
    • существовать New Project SDK окно, вы можете выбрать то, что вы установили из JDK или нажмите Download JDK Скачайте подходящую из Версию из Интернета (например OpenJDK 11, OpenJDK 17 ждать).
    • Выберите правильный JDK Версия После этого нажмите Apply и OK
  5. Установить уровень языка проекта
    • существовать Project Structure , вы можете установить Project Language Level,оно решило Java Атрибут из можно использовать в коде. Например, если вы изпроектируете, используйте изда Java 11,Уровень языка можно установить на Java 11,так IDEA Это поможет вам проверить, есть ли в коде несовместимый синтаксис.
🛠️ 2.1.2 Шаг 2. Переключение версии JDK на уровне модуля

Иногда проект может содержать несколько модулей, для каждого из которых может потребоваться своя версия JDK. Способ настройки среды JDK отдельно для каждого модуля следующий:

  1. существовать Project Structure , нажмите на левую сторону из Modules,Выберите модуль, который необходимо настроить.
  2. Модуль установки SDK:существоватьмодульиз Dependencies вкладке вы увидите текущий модуль из Module SDK。ты Может Разные по мере необходимостимодуль Настройки разныеиз SDK。
  3. Выберите правильный SDK После этого нажмите Apply и OK
🛠️ 2.1.3 Шаг 3. Установите версию JDK среды выполнения.

Иногда наш проект компилируется JDK Версия и фактическая эксплуатация JDK Версии могут отличаться. Чтобы гарантировать, что среда выполнения соответствует времени компиляции проекта, вы можете выполнить следующие шаги, чтобы установить время выполнения JDK

  1. Нажмите на строку меню из Run -> Edit Configurations...
  2. существоватьнеожиданно возникнутьиз Run/Debug Configurations окнов, выберите Вы хотите изменить текущую конфигурацию, которая обычно отображается как Application или JUnit конфигурация.
  3. существовать JRE В опциях вы можете выбрать то, что хотите из время выполнения JDK,убедитесь, что оно соответствуеттыизпроекткомпилировать Версияпоследовательный。Нажмите Apply и OK
🛠️ 2.2 Глобальные настройки JDK в IDEA

Если вы хотите настроить один и тот же вариант для нескольких проектов JDK Версия,или или глобальная модификация IDEA из JDK Для настройки вы можете выполнить следующие шаги:

  1. Открыть IDEA из Глобальные настройки:Нажмите File -> Settings,илиили используйте сочетания клавиш Ctrl + Alt + S
  2. существовать Окно настроек в, выберите Build, Execution, Deployment -> Build Tools -> Gradle или ВОЗ Maven,Настройте с помощью инструментов сборки согласно проекту.
  3. существовать Здесь вы можете выбрать Gradle JVM или ВОЗ Maven JDK,Убедитесь, что они указывают на ту версию, которую вы собираетесь использовать в версии JDK.

🐯 2.3 Краткое изложение часто задаваемых вопросов

  • Почему Среда компиляциии Операционная средаиз JDK Версия будет противоречивой? Иногда команда разработчиков использует более новую версию при локальной разработке для поддержки различных сред развертывания. JDK, хотя в производственной среде используется более старая версия JDK Версия. Итак, научимся переключать компиляцию и Операция. средасерединаиз JDK да очень нужно из.
  • Если я использую изда Maven Что насчет проекта? для Проект Maven,может пройтисуществовать pom.xml указано в файле <maven.compiler.source> и <maven.compiler.target> контролировать проектиз JDK Компиляция версии。
Язык кода:javascript
копировать
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <source>11</source>
                <target>11</target>
            </configuration>
        </plugin>
    </plugins>
</build>
  • Как настроить это в проекте Gradle? для Проект Gradle,Можетсуществовать build.gradle Установить в файл sourceCompatibility и targetCompatibility
Язык кода:javascript
копировать
sourceCompatibility = 11
targetCompatibility = 11

Цитировать: голова кошки Тигр рекомендует всем постараться сохранить Среду при развитии существования компиляциии Операционная согласованность окружающей среды, чтобы избежать существования времени в производственных средах выполнение проблем совместимости.


Благодаря вышеуказанным шагам вы смогли умело IntelliJ IDEA Переключиться в проектиз Среда компиляции и Операционная среда

🐯3. Как решить эту проблему?

💡 3.1 Шаг 1. Подтвердите версию JDK

Во-первых, убедитесь, что вы используете JDK-версия Соответствует зависимости проекта от библиотеки Версия. Убедитесь, что вы в данный момент используете версию JDK, с помощью следующей команды:

Язык кода:javascript
копировать
java -version

Вы увидите вывод, аналогичный следующему:

Язык кода:javascript
копировать
openjdk version "11.0.10" 2021-01-19
🛠️ 3.2 Шаг 2. Проверьте версию Javac в зависимостях.

существоватьпроектиз build.gradle или pom.xml файл, найдите да, чтобы увидеть, есть ли какой-либо конкретный Javac или JDK-версия иззависимость. Убедитесь, что вы указали версию изJDK, соответствующую этим зависимостям из Версия.

Пример Градла:
Язык кода:javascript
копировать
dependencies {
    compileOnly 'org.projectlombok:lombok:1.18.12'
    annotationProcessor 'org.projectlombok:lombok:1.18.12'
    // Обеспечьте согласованность с версией JDK.
}
Пример Мавена:
Язык кода:javascript
копировать
<dependencies>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.12</version>
    </dependency>
</dependencies>
⚙️ 3.3 Шаг 3. Обновите Javac или переключите JDK.

В соответствии с вашими потребностями обновите или понизьте версию вашей версии JDK. Разными JDK можно управлять через SDKMAN:

Язык кода:javascript
копировать
sdk install java 11.0.10-open

или или переключитесь на нужную из Версию:

Язык кода:javascript
копировать
sdk use java 8.0.265-zulu
🔍 3.4 Шаг 4. Очистите и пересоберите проект.

После завершения настройки JDKилиJavacВерсияиз,Выполните следующую команду Очистить проекти Восстановить:

Язык кода:javascript
копировать
./gradlew clean build

или существовать в Maven.

Язык кода:javascript
копировать
mvn clean install

Цитировать: “голова кошки Тигр рекомендует всем постараться остаться в Среде компиляция опирается на согласованность версий, чтобы избежать проблем несовместимости».


🐯4. Как избежать подобных проблем?

Чтобы избежать подобных проблем в будущем, Маотоху рекомендует вам:

  1. Блокировка зависимостей Версия:существоватьпроектсерединаиспользовать Исправлена ​​зависимость изJDKи Версия,Избегайте проблем совместимости, вызванных автоматическими обновлениями.
  2. Проверка интеграции CI/CD:существоватьтыизCI/CDпроцесссерединаприсоединиться JDK-версияисследовать и Советы по обновлению зависимостей,Обеспечьте единообразие среды разработки команды.
  3. Используйте инструменты управления JDK:Например SDKMAN или ВОЗ JEnv,Вам удобно управлять несколькими JDK-версиями.,и Можно динамически переключаться в соответствии с проектом.

🐯 5. Рекомендации 📚

  1. Проблемы совместимости JDK и JavacВерсия
  2. Официальная документация Gradle
  3. Центральный репозиторий Maven

🐯 6. общийQ&A 🤔

Вопрос 1: Брат Кот, как проверить, какая версия JDK требуется для зависимой библиотеки?

A1: Обычно в документации зависимой библиотеки четко указано, что JDK-версия поддерживается. А еще голова кошки тигр, предлагаю вам проверить библиотеку зависимостей. release notes,Большинство библиотек перечисляют требования JDK при выпуске новой библиотеки.

Q2: Могу ли я использовать несколько JDK-версий одновременно?

A2: Конечно, используйте SDKMAN или JEnv Вы можете легко управлять несколькими JDK-версиями, а также динамически переключаться между разными проектами.

🐯 7. Резюме 📝

В этой статье анализируются JDK и Javac. Причины несоответствия API NoSuchFieldError вопрос,Предоставляет комплексные решения,включая то, какисследоватьиобновлениеJDK-версия、Очистить проект、И чтобы избежать подобных проблем в будущем.

будущее, с Комплексная разработка ИИ По мере роста спроса разработчикам необходимо уделять больше внимания среде разработки и управлению библиотекой зависимостей. голова кошки Тигр рекомендует всем сохранять техническую деликатность,Своевременное обновление зависимостей проекта,Избегайте препятствий в разработке, вызванных проблемами версии.

🐯 Маотоху будет расти вместе с вами, и технологиям нет предела!

boy illustration
Учебное пособие по Jetpack Compose для начинающих, базовые элементы управления и макет
boy illustration
Код js веб-страницы, фон частицы, код спецэффектов
boy illustration
【новый! Суперподробное】Полное руководство по свойствам компонентов Figma.
boy illustration
🎉Обязательно к прочтению новичкам: полное руководство по написанию мини-программ WeChat с использованием программного обеспечения Cursor.
boy illustration
[Забавный проект Docker] VoceChat — еще одно приложение для мгновенного чата (IM)! Может быть встроен в любую веб-страницу!
boy illustration
Как реализовать переход по странице в HTML (html переходит на указанную страницу)
boy illustration
Как решить проблему зависания и низкой скорости при установке зависимостей с помощью npm. Существуют ли доступные источники npm, которые могут решить эту проблему?
boy illustration
Серия From Zero to Fun: Uni-App WeChat Payment Practice WeChat авторизует вход в систему и украшает страницу заказа, создает интерфейс заказа и инициирует запрос заказа
boy illustration
Серия uni-app: uni.navigateЧтобы передать скачок значения
boy illustration
Апплет WeChat настраивает верхнюю панель навигации и адаптируется к различным моделям.
boy illustration
JS-время конвертации
boy illustration
Обеспечьте бесперебойную работу ChromeDriver 125: советы по решению проблемы chromedriver.exe не найдены
boy illustration
Поле комментария, щелчок мышью, специальные эффекты, js-код
boy illustration
Объект массива перемещения объекта JS
boy illustration
Как открыть разрешение на позиционирование апплета WeChat_Как использовать WeChat для определения местонахождения друзей
boy illustration
Я даю вам два набора из 18 простых в использовании фонов холста Power BI, так что вам больше не придется возиться с цветами!
boy illustration
Получить текущее время в js_Как динамически отображать дату и время в js
boy illustration
Вам необходимо изучить сочетания клавиш vsCode для форматирования и организации кода, чтобы вам больше не приходилось настраивать формат вручную.
boy illustration
У ChatGPT большое обновление. Всего за 45 минут пресс-конференция показывает, что OpenAI сделал еще один шаг вперед.
boy illustration
Copilot облачной разработки — упрощение разработки
boy illustration
Микросборка xChatGPT с низким кодом, создание апплета чат-бота с искусственным интеллектом за пять шагов
boy illustration
CUDA Out of Memory: идеальное решение проблемы нехватки памяти CUDA
boy illustration
Анализ кластеризации отдельных ячеек, который должен освоить каждый&MarkerгенетическийВизуализация
boy illustration
vLLM: мощный инструмент для ускорения вывода ИИ
boy illustration
CodeGeeX: мощный инструмент генерации кода искусственного интеллекта, который можно использовать бесплатно в дополнение к второму пилоту.
boy illustration
Машинное обучение Реальный бой LightGBM + настройка параметров случайного поиска: точность 96,67%
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция без кодирования и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
LM Studio для создания локальных больших моделей
boy illustration
Как определить количество слоев и нейронов скрытых слоев нейронной сети?
boy illustration
[Отслеживание целей] Подробное объяснение ByteTrack и детали кода