Prawidłowy sposób dodawania zewnętrznych słoików (lib / *. Jar) do projektu IntelliJ IDEA


733

Podczas tworzenia nowego projektu Java w IntelliJ IDEA tworzone są następujące katalogi i pliki:

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

Chcę skonfigurować IntelliJ IDEA w celu uwzględnienia moich plików JAR zależności w ./lib/*.jarprojekcie. Jaki jest właściwy sposób na osiągnięcie tego w IntelliJ IDEA?


Mam problem z uruchomieniem programu w terminalu w IntelliJ. Użyłem instrukcji importu, aby użyć klas, których potrzebuję w programie. Gdy uruchamiam go w IDE, działa dobrze. Ale gdy próbuję skompilować z wiersza polecenia% javac MyProgram.java, pojawia się komunikat o błędzie: nie można znaleźć symbolu
don_Gunner94

Odpowiedzi:


1304

Kroki dodawania zewnętrznych słoików w IntelliJ IDEA:

  1. Kliknij Filena pasku narzędzi
  2. Struktura projektu ( CTRL+ SHIFT+ ALT+ Sw Windows / Linux, + ;w Mac OS X)
  3. Wybierz Moduły na lewym panelu
  4. Karta Zależności
  5. „+” → JAR lub katalogi

98
Rozważ także dodanie folderu lib i skorzystaj z opcji „Dołącz katalogi jar”, ​​która doda wszystkie słoiki w folderze lib. W przypadku dużego projektu nie musisz wybierać każdego słoika indywidualnie.
joeslice,

16
Do wglądu w przyszłości: ten przycisk „Dodaj” znajdował się poza prawą krawędzią okna i spędziłem nadmiernie dużo czasu szukając go, zanim znalazłem ten post i zastanawiałem się nad zmianą rozmiaru okna. (To było na OSX 10.6.5 ...)
Daniel Dickison

7
@joeslice, który działa tylko wtedy, gdy pliki JAR znajdują się w katalogu głównym, prawda? Wydaje się, że nie działa w plikach JAR w podkatalogach wewnątrz „lib”.
opyate

6
W IJIdea 13 zamiast „dodaj” znajduje się „+”>.
Val

4
Używam IDEA 14.0.2. Zamiast Dodaj jest symbol +. Po kliknięciu + dostępne są 3 opcje: 1. Pliki JAR lub katalogi 2. Biblioteka ... 3. Zależność modułu ...
Ripon Al Wasim

238

IntelliJ IDEA 15 i 2016

  1. Plik > Struktura projektu ...

    Plik> Struktura projektu

    lub naciśnij Ctrl+ Alt+ Shift+S

  2. Ustawienia projektu > Moduły > Zależności > Znak „ + ”> Pliki JAR lub katalogi ...

    Moduły> Zależności> JAR lub katalogi

  3. Wybierz plik jar i kliknij przycisk OK, a następnie kliknij inny przycisk OK, aby potwierdzić

    wprowadź opis zdjęcia tutaj

    wprowadź opis zdjęcia tutaj

  4. Plik jar można wyświetlić w folderze „Biblioteki zewnętrzne”

    wprowadź opis zdjęcia tutaj


Właściwie tworzę nowy moduł w okienku „Moduły” (o nazwie na przykład „JarsForLogging”), a następnie dodaję wszystkie potrzebne słoiki (znajdujące się w jakimś katalogu daleko od drzewa projektu) do tego nowego modułu i zaznaczam słoiki jako „ Eksport". Na koniec dodaję nowo utworzony moduł do zależności oryginalnego modułu. W ten sposób nieco bardziej hierarchiczny.
David Tonhofer,

Ponadto: upewnij się, że uprawnienia do systemu plików są ustawione poprawnie dla .jarplików. Służy chmoddo modyfikowania ich w systemie Linux lub MacOS.
JJD,

4
nadal działa w 2018 roku (wersja roczna i IntelliJ). Dziękuję Ci. W ten sposób mogę załadować i używać bibliotek Armed Bear Common Lisp z poziomu IntelliJ, super!
Jason Robinson

Tak. Działa również z moim IntelliJ. Dzięki!
Bms bharadwaj

1
@ don_Gunner94, za pośrednictwem wiersza polecenia, należy również podać słoik w następujący sposób:javac -cp ".:/my/path/file.jar;" MyProgram.java
ROMANIA_engineer

117

Wystarczy skopiować i wkleić plik .jar do folderu „libs” (lub całego folderu „libs”), kliknąć go prawym przyciskiem myszy i wybrać z listy opcję „Dodaj jako bibliotekę”. Reszta zajmie się resztą ...

wprowadź opis zdjęcia tutaj


Najprostszy i sposób, w jaki jesteśmy przyzwyczajeni od czasu Eclipse.
Sufian,

3
Prosty i prosty !!
Anaximandro Andrade,

3
W pewnym sensie irytujące wciąż prosi o „imię”, czy możesz po prostu zostawić tam jakieś śmieci?
dividebyzero

To mi też pomogło!
Preeti Joshi

Mam problem z uruchomieniem programu w terminalu w IntelliJ. Użyłem instrukcji importu, aby użyć klas, których potrzebuję w programie. Gdy uruchamiam go w IDE, działa dobrze. Ale gdy próbuję skompilować z wiersza polecenia% javac MyProgram.java, pojawia się komunikat o błędzie: nie można znaleźć symbolu. -
don_Gunner94

20

Dodajesz je jako biblioteki do swojego modułu.

Zwykle mam /libkatalog w moim źródle. Umieszczam tam wszystkie potrzebne pliki JAR, dodaję / lib jako bibliotekę i włączam do moich zależności modułu.

Aktualizacja 2018: Używam teraz IntelliJ 2017/2018.

Jestem w pełni oddany Maven i Nexusowi w zakresie zarządzania zależnościami.

W ten sposób poszedł świat. Każdy projekt Java typu open source, o którym wiem, wykorzystuje Maven lub Gradle. Ty też powinieneś.


Tak, ale co, jeśli pom Maven nie jest nazywany pom.xml? Wygląda na to, że nie mogę odczytać zależności od Maven.
user1001630,

4
Konwencja nazywa to pom.xml. Postępuj zgodnie z konwencją i zmień nazwę pliku.
duffymo,

Nadal uważam, że słoik nie ma repozytorium maven ... ale nie rozumiem, jak to zrobić poprawnie. Rozumiem, jak dodać katalog, po prostu nie rozumiem, jak go uzyskać, importuję również javadocs. działa, gdy dodam słoik jako pojedynczy plik, ale nie, jeśli dodam katalog. Czy to po prostu niemożliwe?
ycomp 18.10.15

To dobra rada. Ręczne dodawanie słoików jest czasochłonne i podatne na błędy. Twoje zależności powinny zawsze być konfigurowane „za pomocą kodu”, w pom.xml(dla maven) lub cokolwiek równoważnego dla gradle.
vikingsteve

1
Wszystkie pliki JAR mają repozytorium. Jeśli nie jest dostępny w publicznym lub prywatnym repozytorium, możesz mvn zainstalować go ręcznie w lokalnym .m2. Nie ma powodu, aby robić inaczej.
duffymo,

17

Jeśli budujesz projekt za pomocą gradla, wystarczy dodać jedną linię do zależności w build.gradle:

buildscript {
    ...
}
...

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

a następnie dodaj folder do głównego projektu lub modułu:

wprowadź opis zdjęcia tutaj

Następnie upuszczasz tam słoiki i możesz zacząć :-)


Mam problem z uruchomieniem programu w terminalu w IntelliJ. Użyłem instrukcji importu, aby użyć klas, których potrzebuję w programie. Gdy uruchamiam go w IDE, działa dobrze. Ale gdy próbuję skompilować z wiersza polecenia% javac MyProgram.java, pojawia się komunikat o błędzie: nie można znaleźć symbolu. -
don_Gunner94

7

Korzystam z tej metody i działa dobrze:

1- Kopiuj i wklej .jarpliki w libsfolderze.

2- Dodaj compile fileTree(dir: 'libs', include: '*.jar')się dependenciesw build.gradleto wszystkie słoiki w libskatalogu zostaną włączone ..

3- Kliknij libsfolder prawym przyciskiem myszy i wybierz z listy opcję „Dodaj jako bibliotekę”.


Dziękuję, to była jedyna rzecz, która działała dla mnie!
Gregordy,

Mam problem z uruchomieniem programu w terminalu w IntelliJ. Użyłem instrukcji importu, aby użyć klas, których potrzebuję w programie. Gdy uruchamiam go w IDE, działa dobrze. Ale gdy próbuję skompilować z wiersza polecenia% javac MyProgram.java, pojawia się komunikat o błędzie: nie można znaleźć symbolu.
don_Gunner94

5

Bibliotek nie można bezpośrednio używać w żadnym programie, jeśli nie zostaną poprawnie dodane do plików stopni projektu.

Można to łatwo zrobić za pomocą inteligentnych IDE, takich jak inteli J.

1) Najpierw jako konwencję dodaj folder o nazwie „libs” do pliku src projektu. (można to łatwo zrobić za pomocą samego IDE)

2) następnie skopiuj lub dodaj plik biblioteki (np. Plik .jar) do folderu o nazwie „libs”

3) teraz możesz zobaczyć plik biblioteki w folderze libs. Teraz kliknij plik prawym przyciskiem myszy i wybierz „dodaj jako bibliotekę”. A to naprawi wszystkie odpowiednie pliki w twoim programie, a biblioteka będzie bezpośrednio dostępna do użytku.

Proszę zanotować:

Za każdym razem, gdy dodajesz biblioteki do projektu, upewnij się, że projekt obsługuje bibliotekę


3

Znaleziona tutaj świetna pomoc. Jednak nadal nie mogłem go uruchomić, pomimo prawidłowego załadowania pliku JAR. Później dowiedziałem się, że przypadkowo utworzyłem moduł w strukturze plików zamiast zwykłego folderu i ten właśnie moduł został wstępnie wybrany w ustawieniach projektu.

Oto ślad:

Plik -> Struktura projektu -> Moduły -> (wybierz odpowiedni moduł, jeśli masz więcej) -> Zależności -> + -> JAR lub biblioteki


3

Chociaż zgadzam się z poprzednimi odpowiedziami, ważne jest, aby pamiętać, jak uzyskać dostęp do kodu tych bibliotek zewnętrznych.

Na przykład, aby uzyskać dostęp do klasy w bibliotece zewnętrznej, będziesz chciał użyć słowa kluczowego importu, a następnie nazwy biblioteki zewnętrznej, kontynuując zapisywanie kropek, aż do osiągnięcia żądanej klasy.

Spójrz na obrazek poniżej, aby zobaczyć, jak importuję klasę CodeGenerationException z biblioteki quickfixj.

wprowadź opis zdjęcia tutaj

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.