Avatar ·

Как правильно подключить внешние JAR-библиотеки (lib/*.jar) в проект IntelliJ IDEA

Привет, коллеги! Я новичок в Java и IntelliJ IDEA, и у меня возникла проблема с подключением внешних библиотек. У меня есть проект, который использует несколько сторонних JAR-файлов (например, для работы с JSON и логирования). Я сложил их все в папку lib внутри корня проекта и хочу, чтобы IDEA видела их при компиляции и запуске.

Вот структура моего проекта:

MyProject/
├── src/
│   └── com/example/Main.java
├── lib/
│   ├── gson-2.10.1.jar
│   └── log4j-1.2.17.jar
└── MyProject.iml

В Main.java я пытаюсь использовать классы из этих JAR:

import com.google.gson.Gson;
import org.apache.log4j.Logger;

public class Main {
    private static final Logger log = Logger.getLogger(Main.class);
    public static void main(String[] args) {
        Gson gson = new Gson();
        log.info("Приложение запущено");
        System.out.println(gson.toJson("Hello"));
    }
}

IDEA подчёркивает импорты красным и говорит, что не может найти эти классы. Я пробовал через File → Project Structure → Modules → Dependencies добавить JAR-файлы, но после перезапуска IDEA они снова пропадают, или проект перестаёт собираться. Подскажите, как правильно подключить все JAR из папки lib/*.jar раз и навсегда, чтобы они работали и при компиляции, и при запуске? Нужен ли для этого Maven или Gradle, или можно обойтись штатными средствами IDEA?

<<>>

Правильный способ: использование модульной структуры IDEA без систем сборки

Если ваш проект не использует Maven или Gradle (чистый Java-проект), самый надёжный способ — добавить папку lib как библиотеку уровня проекта, а не модуля. Это гарантирует, что зависимости не «отвалятся» при переоткрытии проекта.

Пошаговая инструкция

  1. Откройте структуру проекта: File → Project Structure (Ctrl+Shift+Alt+S).
  2. Перейдите в раздел «Libraries» (не Modules!).
  3. Нажмите «+» → «Java» и выберите папку lib целиком. IDEA автоматически подхватит все JAR-файлы внутри неё.
  4. В появившемся окне укажите имя библиотеки (например, External Libs) и нажмите OK.
  5. Теперь перейдите в раздел «Modules», выберите ваш модуль (обычно один — название проекта), откройте вкладку «Dependencies».
  6. Нажмите «+» → «Library…» и выберите созданную ранее библиотеку. Убедитесь, что в колонке «Scope» стоит «Compile» (по умолчанию).
  7. Нажмите Apply → OK.

После этого IDEA будет видеть все классы из JAR-файлов. Красные импорты исчезнут. При перезапуске проекта библиотека останется, потому что она привязана к проекту, а не к случайной сессии.

Важные нюансы

  • Не добавляйте JAR-файлы по одному через «+» в Modules → Dependencies — это создаёт локальные зависимости, которые теряются при изменении структуры проекта.
  • Если вы используете Git, добавьте папку lib в репозиторий (не забудьте про .gitignore для других артефактов).
  • Для запуска из командной строки вам всё равно потребуется указать classpath. Например:
javac -cp "lib/*:src" src/com/example/Main.java -d out
java -cp "lib/*:out" com.example.Main

Но внутри IDEA после настройки всё будет работать через кнопку Run.

Проверка: как убедиться, что всё настроено

Создайте простой тест в Main.java:

import com.google.gson.Gson;

public class Main {
    public static void main(String[] args) {
        Gson gson = new Gson();
        String json = gson.toJson("Привет, мир!");
        System.out.println(json); // Должно вывести "Привет, мир!"
    }
}

Если после настройки код компилируется и выводит строку — вы сделали всё правильно. Если нет — проверьте, что JAR-файлы действительно находятся в папке lib и что библиотека подключена в разделе Modules.

Этот метод — «золотой стандарт» для проектов без систем сборки. Однако на реальных проектах настоятельно рекомендую перейти на Maven или Gradle — они автоматизируют управление зависимостями и избавят вас от ручного копирования JAR-файлов.

<<>>

Альтернатива: использование Maven для автоматического управления зависимостями

Если вы готовы потратить 10 минут на настройку, лучшим решением будет перевести проект на Maven. Это избавит вас от ручного копирования JAR-файлов и проблем с их подключением.

Как это сделать

  1. Установите Maven (если ещё нет) — обычно он уже встроен в IntelliJ IDEA Ultimate, для Community версии можно скачать отдельно.
  2. В корне проекта создайте файл pom.xml с таким содержимым:
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
         http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.example</groupId>
    <artifactId>my-project</artifactId>
    <version>1.0-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.10.1</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
    </dependencies>
</project>
  1. Удалите папку lib — Maven сам скачает JAR-файлы из центрального репозитория.
  2. В IDEA: File → Open и выберите файл pom.xml — проект автоматически перестроится.

После этого все зависимости будут управляться через Maven. При переносе проекта на другой компьютер достаточно скопировать pom.xml — Maven сам подтянет нужные библиотеки. Это стандарт индустрии, и я настоятельно рекомендую освоить его как можно раньше.