빌드 도구 없이 jar 파일 만들어보기
자, Maven을 사용해서 빌드하기 전에 먼저 원시시대로 돌아가서 씨게 맞아봐야 이걸 왜 쓰는지 체감할 것이다.ㅋㅋㅋ
우리의 목적은
`hello java!`를 출력하는 jar파일을 수동으로 빌드해서 만들기다.
시작해보장~
(참고로 VSCode를 사용할 예정입니다)
1. VSCode Project 생성
- VSCode를 실행해준다.
- ctrl(command) + shift + p 동시 입력
- create Java Project.... 선택

- No bulid tools 선택 -> ^^이번 게시글의 취지^^

- project root location 선택 후 project 이름 입력
- project 생성됨

- java.project.sourcePaths 지정해줘야하는데 프로젝트 생성하면 .vscode폴더 아래 settings.json에 이미 기본으로 되어있을 것이다.
- 반드시 src일 필요는 없는데 관례로 source -> src로 표기
- 모든 source 파일은 src 하위에 위치, package는 'src'를 포함하지 않음
- 원하는대로 편집도 가능하다. vi .vscode/settings.json or vscode 를 이용해서 설정
추가적으로 src 하위에 package를 생성해주겠다.

- package를 폴더로 봐도 무방하다.
- hello 하위에 Main.java 작성하기
package com.nhnacademy.hello;
public class Main {
public static void main(String[] args) {
System.out.println("Hello java!");
}
}
- ctrl(command) + s 로 저장하고 한 번 실행해보기

2. compile
자 이번엔 컴파일을 해볼 것이다.

- mkdir out 으로 out directory를 생성해도 되고 아래 명령어를 바로 입력해도 out directory가 없으면 만들어준다.
- `-d`은 클래스파일을 별도의 디렉터리를 지정해서 저장할 수 있는 옵션이다. 즉, 컴파일러는 기본적으로 각 클래스파일을 소스(.java) 동일한 위치에 저장한다.
javac ./src/com/nhnacademy/hello/*.java -d ./out
% 주의 사항 : javac 뒤에 나오는 경로는 각자 실습하는 환경과 패키지에 따라 다를 수 있으니 각 환경에 맞게 입력해야 컴파일 된다.

- Main.class 파일이 생성된 것을 볼 수 있다.
3. Create hello.jar
주의사항 : jar 명령어를 입력한 위치에 jar 파일이 생긴다!
out 폴더 위치로 이동해서 진행해야 압축한 폴더의 최상위 루트?가 com부터 잡힌다.
out 폴더로 이동한 다음 진행하겠다.
cd ./out
jar --file hello.jar --main-class com.nhnacademy.hello.Main -c ./com

( -c 뒤의 com 위치를 잘못 적으면 저렇게 com 위치를 찾지 못한다.)
잘 생성했으면 아래 그림처럼 현재 있는 위치 기준으로 jar 파일이 생성된다.

jar 명령어를 설명해보면
jar : 이 명령어는 JAR(Java ARchive) 파일을 생성, 업데이트, 또는 열람할 때 사용, JAR 파일은 여러 클래스 파일 및 리소스를 하나로 묶는 압축 파일 형식
--file : `--file` 옵션은 파일 이름을 지정하는 옵션이다.
즉, 위의 코드는 `파일이름을 hello.jar로 해주세요`라는 뜻이다.
--main-class : `--main-class` 옵션은 JAR파일 안에서 메인 클래스를 지정하는 것이다. 해당 정보는 JAR파일의 메타데이터에 저장된다. 쉽게말해 JAR 파일을 실행 했을 때 사용할 메인 클래스를 지정하는 것이다.
즉, 위의 코드는 `com.nhnacademy.hello.Main를 메인 클래스로 지정하겠습니다` 라는 뜻이다.
-c : `-c` 옵션은 압축될 directory를 지정하는것이고 그 안의 모든 파일과 서브 directory들을 포함한다.
4. execute hello.jar
만든 jar 파일을 실행해보자!

아주 잘 된다!
jar 파일의 내용을 확인하고 싶으면
jar -tf hello.jar

그리고 압축한 jar파일을 해제해보면
unzip hello.jar

내용을 확인할 수 있다.
- MANIFEST.MF 파일을 잠깐 눌러보자.

- 아까 얘기한 메인 클래스를 지정한 부분이 나온다.
- 이런식으로 메타데이터를 저장해놔서 jar파일을 실행하면 자동으로 메인 클래스를 찾아서 실행할 수 있는것이다.
'개인공부 > Maven' 카테고리의 다른 글
| 5. Maven Archetype Plugin, Maven 프로젝트 생성 (1) | 2024.10.13 |
|---|---|
| 4. Maven (3) | 2024.10.13 |
| 3. 빌드 도구없이 jar파일 만들어보기 2탄 (0) | 2024.10.13 |
| 1. 빌드 도구 (1) | 2024.10.12 |
댓글