✏️ Info.
- Intellij Ultimate 2020.3.3
- OpenJDK 1.8
- 인텔리제이 실행(Execute or Runnable) Jar 생성
+ 실행 jar에 아래 두 방법을 통해 추가된 lib를 생성된 jar에 포함시키는 방법
1. Maven Dependency를 통한 Library 포함
2. 외부 Directory의 jar 파일 포함
📋 List.
1. resources 디렉터리 생성
2. Artifacts 생성
3. Dependency, 외부 lib 추가
4. Build
5. 실행
6. 실패 시 오류
✔️ Content.
1. resources 디렉토리 생성
- MANIFEST.MF가 작성 될 디렉터리
- src/main/resources로 생성을 해야 MANIFEST에 작성한 MainClass가 읽힌다.
2. Artifacts 생성
2.1. Project Structure - Artifacts - Add(+ 버튼) - From modules with dependencies
2.2. 위의 생성된 폼에서 Main Class 영역을 눌러 실행시킬 main class를 등록한다
2.3 Directory for META-INF/MANIFEST.MF 가 src/main/java로 되는데 이를 src/main/resources 로 바꿔준다.
2.4. 이후 OK 버튼을 누르면 다음과 같이 jar가 구성된다.
3. Dependency, 외부 lib 추가
Artifacts 생성 이후에 Dependency, 외부 디렉터리에 있는 Libary가 추가될 경우에는 Artifacts에 자동으로 추가되지 않기 때문에 별도로 추가를 해야 한다.
- 예로 기존의 Artifacts에서 log4j Libarry를 추가했다.
- 우측 Available Elments에는 Library가 잡히지만 실제 생성될 execute.jar에는 포함되지 않고 있다.
실행. jar에 포함시키기 위해 다음과 같이 진행한다.
- Avaliable Elments에서 포함할 Library 우클릭
- Extract into Output Root 클릭
위와 같이 execute.jar에 포함되는 것을 확인할 수 있다.
4. Build
- 상단의 Build - Build Artifacts 클릭
- Build 클릭
- 2.4에서 지정된 Output directory 내 실행 jar가 생성된다.
5. 실행
- 실제 MainClass Code
- Libary가 제대로 적용되는지 PDFBox Library 인스턴스를 생성했었다.
- Library가 제대로 적용되면 인스턴스 생성 로직을 지나 콘솔에서 Hello World를 볼 수 있다.
package org.example;
import org.apache.pdfbox.pdmodel.PDDocument;
public class App
{
public static void main( String[] args )
{
PDDocument document = new PDDocument();
System.out.println( "Hello World!" );
}
}
- IntelliJ - Terminal에서 실행
- 실행 명령
- java -jar out/artifacts/execute_jar_jar/execute_jar.jar
6. 실패 시 오류
- 실행. jar에 lib이 포함되지 않았기 때문에 5. 실행 코드 - 인스턴스 생성 부분에서 NoClassDefFoundError 가 발생
'IDE > IntelliJ' 카테고리의 다른 글
[IntelliJ][이슈] The file size exceeds the configured limit. Code insight features are not available. (0) | 2021.09.13 |
---|---|
[IntelliJ][단축키][팁] sout(System.out.print) (0) | 2021.07.08 |
[IntelliJ][VCS] Repository URL 한글 URL 삭제 (0) | 2021.03.03 |
[IntelliJ][Cubrid] Database tool 연결방법 2 (0) | 2021.01.06 |
[IntelliJ][Cubrid] Database tool 연결방법 1 (0) | 2021.01.04 |