Правильний спосіб додати зовнішні банки (lib / *. Jar) до проекту IntelliJ IDEA


734

Під час створення нового проекту Java в IntelliJ IDEA створюються такі каталоги та файли:

./projectname.iml
./projectname.ipr
./projectname.iws
./src/

Я хочу налаштувати IntelliJ IDEA для включення моїх JAR-кодів залежності в ./lib/*.jarпроект. Який правильний спосіб досягти цього в IntelliJ IDEA?


Я зіткнувся з проблемою під час запуску програми в терміналі в IntelliJ. Я використовував оператор імпорту для використання класів, які мені потрібні в програмі. Поки я запускаю його в IDE, він працює чудово. Але коли я намагаюся компілювати з командного рядка% javac MyProgram.java, він говорить про помилку: не вдається знайти символ
don_Gunner94

Відповіді:


1304

Кроки для додавання зовнішніх банок в IntelliJ IDEA:

  1. Клацніть Fileна панелі інструментів
  2. Структура проекту ( CTRL+ SHIFT+ ALT+ Sу Windows / Linux, + ;у Mac OS X)
  3. Виберіть Модулі на панелі ліворуч
  4. Вкладка Залежності
  5. '+' → JARs або каталоги

98
Крім того, розгляньте можливість додавання папки lib та скористайтеся "Attach Jar Directories", що додасть усі банки в папку lib. Для великого проекту це не дає вам вибирати кожну банку окремо.
joeslice

16
Для подальшої довідки: що кнопка "Додати" була від правого краю вікна, і я витратив на неї непотрібну кількість часу, перш ніж знайти цю посаду і подумав змінити розмір вікна. (Це було на OSX 10.6.5 ...)
Деніел Дікісон

7
@joeslice, яка працює лише в тому випадку, якщо JAR в корінці каталогу, правда? Схоже, це не працює для JAR в підкаталогах всередині "lib".
opyate

6
У IJIdea 13 замість "додати" є "+">.
Валь

4
Я використовую IDEA 14.0.2. Замість Add є символ +. Після натискання кнопки + є 3 варіанти: 1. JARs або каталоги 2. Бібліотека ... 3. Залежність модуля ...
Ripon Al Wasim

238

IntelliJ IDEA 15 та 2016

  1. Файл > Структура проекту ...

    Файл> Структура проекту

    або натисніть Ctrl+ Alt+ Shift+S

  2. Налаштування проекту > Модулі > Залежності > знак " + "> JARs або каталоги ...

    Модулі> Залежності> JAR або каталоги

  3. Виберіть файл банку та натисніть кнопку ОК, потім натисніть на іншу кнопку ОК, щоб підтвердити

    введіть тут опис зображення

    введіть тут опис зображення

  4. Ви можете переглянути файл jar у папці "Зовнішні бібліотеки"

    введіть тут опис зображення


Я фактично створюю новий Модуль на панелі "Модулі" (названий, наприклад, "JarsForLogging"), потім додаю всі необхідні мені банки (розташовані в деякому каталозі, далеко від дерева проектів) до цього нового Модулю і відзначаю банки як " Експорт ". Нарешті, я додаю новостворений Модуль до залежностей вихідного Модулю. Трохи більш ієрархічний.
Девід Тонхофер

Крім того: переконайтеся, що дозволи файлової системи встановлені правильно для .jarфайлів. Використовуйте chmodдля зміни їх на Linux або MacOS.
JJD

4
досі працює у 2018 році (рік та версія IntelliJ). Дякую. Таким чином я можу завантажувати та використовувати бібліотеки Armed Bear Common Lisp з IntelliJ, дивовижно!
Джейсон Робінсон

Так. Також добре працює з моїм IntelliJ. Дякую!
Bms bharadwaj

1
@ don_Gunner94, за допомогою командного рядка ви також маєте надати баночку так:javac -cp ".:/my/path/file.jar;" MyProgram.java
ROMANIA_engineer

117

Просто скопіюйте і вставте .jar у папку "libs" (або цілу папку "libs"), клацніть правою кнопкою миші та виберіть зі списку опцію "Додати як бібліотеку". Це зробить все інше ...

введіть тут опис зображення


Найпростіший і спосіб, який ми звикли робити з часів затемнення.
Суфіан

3
Простий і простий !!
Анаксимандро Андраде

3
Якийсь спосіб дратувати це все-таки просить "ім'я", тоді ви можете просто залишити там будь-який мотлох?
ділбізеро

Це мені теж допомогло!
Пріеті Джоші

Я зіткнувся з проблемою під час запуску програми в терміналі в IntelliJ. Я використовував оператор імпорту для використання класів, які мені потрібні в програмі. Поки я запускаю його в IDE, він працює чудово. Але коли я намагаюся компілювати з командного рядка% javac MyProgram.java, він говорить про помилку: не можу знайти символ. -
don_Gunner94

20

Ви додаєте їх як бібліотеки до свого модуля.

У /libмоєму джерелі зазвичай є каталог. Я поміщаю всі потрібні JAR туди, додаю / lib як бібліотеку і роблю це частиною моєї залежності від модуля.

Оновлення 2018 року: я зараз використовую IntelliJ 2017/2018.

Я повністю відданий Maven і Nexus для управління залежностями.

Це шлях світу. Кожен проект з відкритим кодом Java, який я знаю, використовує Maven або Gradle. Ви також повинні.


Так, але що робити, якщо Maven pom не називається pom.xml? Тоді здається, що я не можу читати залежності Мейвена.
користувач1001630

4
Конвенція називає це pom.xml. Дотримуйтесь конвенції та перейменуйте свій файл.
duffymo

Я все ще знаходжу потребу, коли в банці немає maven repo ... але, я не розумію, як це зробити правильно. Я розумію, як додати каталог, я просто не розумію, як отримати його імпортувати і javadocs. він працює, коли я додаю банку як єдиний файл, але не, якщо я додаю каталог. Це просто неможливо?
ycomp

Це обґрунтована порада. Додавання банки вручну забирає багато часу і схильна до помилок. Ваші залежності завжди повинні бути налаштовані "за допомогою коду", в pom.xml(для maven) або будь-якого еквівалента для gradle.
vikingsteve

1
Усі JAR мають репо. Якщо це не доступно в державному чи приватному репо, ви можете mvn встановити його вручну у вашому локальному .m2. Немає ніяких причин робити інше
duffymo

17

Якщо ви будуєте проект за допомогою gradle, вам просто потрібно додати один рядок до залежностей у build.gradle:

buildscript {
    ...
}
...

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
}

а потім додайте папку до вашого кореневого проекту чи модуля:

введіть тут опис зображення

Тоді ви кидаєте туди свої банки, і вам добре піти :-)


Я зіткнувся з проблемою під час запуску програми в терміналі в IntelliJ. Я використовував оператор імпорту для використання класів, які мені потрібні в програмі. Поки я запускаю його в IDE, він працює чудово. Але коли я намагаюся компілювати з командного рядка% javac MyProgram.java, він говорить про помилку: не можу знайти символ. -
don_Gunner94

7

Я використовую цей метод, і він добре працює:

1- Скопіюйте та вставте .jarфайли під libsпапку.

2 Додати compile fileTree(dir: 'libs', include: '*.jar')в dependenciesв build.gradleто все банки в libsбудуть включені папки ..

3- Клацніть правою кнопкою миші на libsпапці та виберіть у списку опцію "Додати як бібліотеку".


Дякую, це було єдине, що працювало на мене!
Грегорді

Я зіткнувся з проблемою під час запуску програми в терміналі в IntelliJ. Я використовував оператор імпорту для використання класів, які мені потрібні в програмі. Поки я запускаю його в IDE, він працює чудово. Але коли я намагаюся компілювати з командного рядка% javac MyProgram.java, він говорить про помилку: не можу знайти символ.
don_Gunner94

5

Бібліотеки не можуть бути безпосередньо використані в будь-якій програмі, якщо їх не правильно додати до файлів gradle проекту.

Це легко зробити в розумних IDE, як інтелі Дж.

1) Спочатку в якості угоди додайте файли з іменами папок "libs" під свій проект src-проекту. (це легко зробити за допомогою самої IDE)

2) потім скопіюйте або додайте файл бібліотеки (наприклад: .jar файл) у папку з назвою "libs"

3) тепер ви можете бачити файл бібліотеки всередині папки libs. Тепер клацніть правою кнопкою миші на файл та виберіть "Додати як бібліотеку". І це дозволить виправити всі відповідні файли у вашій програмі, а бібліотека буде безпосередньо доступна для використання.

Будь ласка, запиши:

Щоразу, коли ви додаєте бібліотеки до проекту, переконайтеся, що проект підтримує бібліотеку


3

Тут знайдеться чудова допомога. Однак я все одно не зміг змусити його працювати, незважаючи на належне завантаження JAR. Пізніше я дізнався, що випадково створив модуль у структурі файлів замість звичайної папки, і цей самий модуль був попередньо обраний у налаштуваннях проекту.

Ось слід:

Файл -> Структура проекту -> Модулі -> (виберіть правильний модуль, якщо у вас є більше) -> Залежності -> + -> JAR або Бібліотеки


3

Хоча я згоден з попередніми відповідями, важливо зазначити, як отримати доступ до коду цих зовнішніх бібліотек.

Наприклад, для доступу до класу у зовнішній бібліотеці, вам потрібно використовувати ключове слово імпорту, а потім ім'я зовнішньої бібліотеки, продовжуючи позначення крапок, поки не буде досягнуто потрібного класу.

Подивіться на зображення нижче, щоб побачити, як я імпортую клас CodeGenerationException з бібліотеки quickfixj.

введіть тут опис зображення

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.