IntelliJ IDEA 프로젝트에 외부 jar (lib / *. jar)을 추가하는 올바른 방법


734

IntelliJ IDEA에서 새 Java 프로젝트를 작성하면 다음 디렉토리 및 파일이 작성됩니다.

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

종속성 JAR을 ./lib/*.jar프로젝트 에 포함하도록 IntelliJ IDEA를 구성하고 싶습니다 . IntelliJ IDEA에서 이것을 달성하는 올바른 방법은 무엇입니까?


IntelliJ의 터미널에서 프로그램을 실행하는 동안 문제가 발생했습니다. 프로그램에서 필요한 클래스를 사용하기 위해 import 문을 사용했습니다. IDE에서 실행하는 동안 제대로 실행됩니다. 내가 명령 줄 %의 javac의의 MyProgram.java에서 컴파일 할 때, 그것은 오류가 말한다 : 기호를 찾을 수 없습니다
don_Gunner94

답변:


1305

IntelliJ IDEA에서 외부 항아리를 추가하는 단계 :

  1. File툴바에서 클릭
  2. 프로젝트 구조 ( CTRL+ SHIFT+ ALT+ S윈도우 / 리눅스에, + ;맥 OS X에 대한)
  3. 왼쪽 패널에서 모듈을 선택하십시오
  4. 종속성 탭
  5. '+'→ JAR 또는 디렉토리

99
또한 lib 폴더를 추가하고 "Attach Jar Directories"를 사용하면 lib 폴더에 모든 jar가 추가됩니다. 게으른 프로젝트의 경우 각 항아리를 개별적으로 선택하지 않아도됩니다.
joeslice

16
나중에 참조 할 수 있도록 : "추가"버튼은 창의 오른쪽 가장자리에 있었고이 게시물을 찾고 창 크기를 조정하기 전에 많은 시간을 보냈습니다. (이것은 OSX 10.6.5에있었습니다 ...)
Daniel Dickison

7
JAR가 디렉토리 루트에있는 경우에만 작동하는 @joeslice? 'lib'의 하위 디렉토리에있는 JAR에서는 작동하지 않는 것 같습니다.
opyate 2016 년

6
IJIdea 13에는 "add"대신 "+">가 있습니다.
Val

4
IDEA 14.0.2를 사용하고 있습니다. 추가 대신 + 기호가 있습니다. +를 클릭하면 3 가지 옵션이 있습니다. 1. JAR 또는 디렉토리 2. 라이브러리 ... 3. 모듈 종속성 ...
Ripon Al Wasim

239

IntelliJ IDEA 15 및 2016

  1. 파일 > 프로젝트 구조 ...

    파일> 프로젝트 구조

    또는 Ctrl+ Alt+ Shift+를 누릅니다S

  2. 프로젝트 설정 > 모듈 > 종속성 > " + "기호> JAR 또는 디렉토리 ...

    모듈> 종속성> JAR 또는 디렉토리

  3. jar 파일을 선택하고 확인을 클릭 한 다음 다른 확인 버튼을 클릭하여 확인하십시오.

    여기에 이미지 설명을 입력하십시오

    여기에 이미지 설명을 입력하십시오

  4. "외부 라이브러리"폴더에서 jar 파일을 볼 수 있습니다

    여기에 이미지 설명을 입력하십시오


실제로 "모듈"창 (예 : "JarsForLogging")에서 새 모듈을 만든 다음 필요한 모든 항아리 (프로젝트 트리에서 멀리 떨어진 일부 디렉토리에 위치)를이 새 모듈에 추가하고 항아리를 " 수출". 마지막으로, 새로 작성된 모듈을 원래 모듈의 종속성에 추가합니다. 그런 식으로 조금 더 계층 적입니다.
David Tonhofer

또한 파일 시스템 권한.jar파일에 대해 올바르게 설정되어 있는지 확인하십시오 . chmodLinux 또는 MacOS에서이를 수정하는 데 사용하십시오 .
JJD

4
2018 년에도 작동합니다 (년 및 IntelliJ 버전). 감사합니다. 이렇게하면 IntelliJ 내에서 Armed Bear Common Lisp 라이브러리를로드하고 사용할 수 있습니다.
Jason Robinson

네. 내 IntelliJ 와도 잘 작동합니다. 감사!
Bms bharadwaj 2016 년

1
@ don_Gunner94, 명령 행을 통해 다음과 같은 jar도 제공해야합니다.javac -cp ".:/my/path/file.jar;" MyProgram.java
ROMANIA_engineer

117

"libs"폴더 (또는 전체 "libs"폴더) 아래에 .jar 파일을 복사하여 붙여넣고 마우스 오른쪽 단추로 클릭 한 다음 목록에서 '라이브러리로 추가'옵션을 선택하십시오. 나머지는 ...

여기에 이미지 설명을 입력하십시오


이클립스 시대부터 가장 단순하고 익숙한 방식입니다.
Sufian

3
평범하고 단순한 !!
Anaximandro Andrade

3
성가신 종류는 여전히 "이름"을 요구합니다. 거기에 쓰레기를 남겨 두실 수 있습니까?
splitbyzero

이것은 나에게도 도움이되었습니다!
Preeti Joshi

IntelliJ의 터미널에서 프로그램을 실행하는 동안 문제가 발생했습니다. 프로그램에서 필요한 클래스를 사용하기 위해 import 문을 사용했습니다. IDE에서 실행하는 동안 제대로 실행됩니다. 그러나 명령 줄 % javac MyProgram.java에서 컴파일하려고하면 오류 : 심볼을 찾을 수 없습니다. –
don_Gunner94

20

모듈을 라이브러리로 추가합니다.

나는 보통 /lib내 소스에 디렉토리를 가지고있다 . 필요한 모든 JAR을 넣고 라이브러리로 / lib를 추가하고 모듈 종속성의 일부로 만듭니다.

2018 업데이트 : 지금 IntelliJ 2017/2018을 사용하고 있습니다.

종속성 관리를 위해 Maven과 Nexus에 전념하고 있습니다.

이것이 세상이가는 길입니다. 내가 아는 모든 오픈 소스 Java 프로젝트는 Maven 또는 Gradle을 사용합니다. 당신도 그래야합니다.


예,하지만 Maven pom의 이름이 pom.xml이 아닌 경우 어떻게해야합니까? 그런 다음 Maven 종속성을 읽을 수없는 것 같습니다.
user1001630

4
컨벤션은 pom.xml이라고합니다. 규칙을 따르고 파일 이름을 바꿉니다.
duffymo

항아리에 maven repo가 ​​없을 때 여전히 필요를 찾았지만 올바르게 수행하는 방법을 이해하지 못합니다. 디렉토리를 추가하는 방법을 이해하지만 javadocs도 가져 오는 방법을 이해하지 못합니다. jar를 단일 파일로 추가 할 때 작동하지만 디렉토리를 추가하면 작동하지 않습니다. 단순히 불가능합니까?
ycomp

이것은 건전한 조언입니다. 항아리를 수동으로 추가하면 시간이 많이 걸리고 오류가 발생하기 쉽습니다. 종속성은 항상 (코드를 통해 pom.xml) , (maven의 경우) 또는 gradle과 동등한 항목으로 구성해야합니다.
vikingsteve

1
모든 JAR에는 저장소가 있습니다. 공용 또는 개인 저장소에서 사용할 수없는 경우 로컬 .m2에 수동으로 설치할 수 있습니다. 달리 할 이유가 없습니다.
duffymo

17

gradle로 프로젝트를 빌드하는 경우 build.gradle의 종속성에 한 줄만 추가하면됩니다.

buildscript {
    ...
}
...

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

그런 다음 폴더를 루트 프로젝트 또는 모듈에 추가하십시오.

여기에 이미지 설명을 입력하십시오

그런 다음 항아리를 거기에 버리고 가십시오 :-)


IntelliJ의 터미널에서 프로그램을 실행하는 동안 문제가 발생했습니다. 프로그램에서 필요한 클래스를 사용하기 위해 import 문을 사용했습니다. IDE에서 실행하는 동안 제대로 실행됩니다. 그러나 명령 줄 % javac MyProgram.java에서 컴파일하려고하면 오류 : 심볼을 찾을 수 없습니다. –
don_Gunner94

7

이 방법을 사용하고 잘 작동합니다.

1- 폴더 .jar아래에 파일을 복사하여 붙여 넣습니다 libs.

추가 2 compile fileTree(dir: 'libs', include: '*.jar')dependenciesbuild.gradle다음의 모든 단지 libs폴더가 포함됩니다 ..

3- libs폴더를 마우스 오른쪽 버튼으로 클릭 하고 목록에서 '라이브러리로 추가'옵션을 선택하십시오.


고마워, 이것이 나를 위해 일한 유일한 것이었다!
Gregordy

IntelliJ의 터미널에서 프로그램을 실행하는 동안 문제가 발생했습니다. 프로그램에서 필요한 클래스를 사용하기 위해 import 문을 사용했습니다. IDE에서 실행하는 동안 제대로 실행됩니다. 그러나 명령 줄 % javac MyProgram.java에서 컴파일하려고하면 오류 : 심볼을 찾을 수 없습니다.
don_Gunner94

5

프로젝트 gradle 파일에 제대로 추가되지 않으면 라이브러리를 프로그램에서 직접 사용할 수 없습니다.

이것은 inteli J와 같은 스마트 IDE에서 쉽게 수행 할 수 있습니다.

1) 먼저 컨벤션으로 프로젝트 src 파일 아래에 폴더 이름 'libs'를 추가하십시오. (이것은 IDE 자체를 사용하여 쉽게 수행 할 수 있습니다)

2) 그런 다음 라이브러리 파일 (예 : .jar 파일)을 'libs'라는 폴더에 복사하거나 추가하십시오

3) 이제 libs 폴더 안에 라이브러리 파일이 있습니다. 이제 파일을 마우스 오른쪽 버튼으로 클릭하고 '라이브러리로 추가'를 선택하십시오. 그러면 프로그램의 모든 관련 파일이 수정되고 라이브러리를 직접 사용할 수있게됩니다.

참고 :

라이브러리를 프로젝트에 추가 할 때마다 프로젝트가 라이브러리를 지원하는지 확인하십시오


3

여기에 큰 도움이 있습니다. 그러나 JAR을 올바르게로드하더라도 여전히 작동하도록 할 수 없었습니다. 나중에 실수로 일반 폴더 대신 파일 구조로 모듈을 생성 했으며이 모듈이 프로젝트 설정에서 미리 선택되었음을 알았습니다.

발자국은 다음과 같습니다.

파일-> 프로젝트 구조-> 모듈-> (더 많은 경우 적절한 모듈 선택)-> 종속성-> +-> JAR 또는 라이브러리


3

이전 답변에 동의하지만 해당 외부 라이브러리의 코드에 액세스하는 방법에 유의하는 것이 중요합니다.

예를 들어 외부 라이브러리의 클래스에 액세스하려면 가져 오기 를 사용하려고합니다. 키워드와 외부 라이브러리 이름을 사용하고 원하는 클래스에 도달 할 때까지 점 표기법을 계속 사용합니다.

quickfixj 라이브러리에서 CodeGenerationException 클래스를 가져 오는 방법을 보려면 아래 이미지를 참조하십시오 .

여기에 이미지 설명을 입력하십시오

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.