[Java]Java 프로젝트에서 컴파일부터 배포까지의 과정
👉 컴파일 명령어
javac -d [컴파일 결과물을 저장할 경로] [컴파일할 .java 파일]
- java 파일이 컴파일 되면 .class 파일로 저장됨
- .class 파일은 바이트 코드로 구성되어 있음
👉 .class 파일 실행 명령어
java -classpath [class 파일이 위치한 디렉토리] [패키지를 포함한 클래스 이름]
- 클래스 이름은 실행할 .class 파일로, 반드시 main 함수가 들어 있어야 실행됨
- class 파일 위치는 실행할 클래스 파일이 있는 상위 폴더의 ‘class’라는 이름의 디렉토리 위치
- ⇒
java -classpath D:\practice\class\ com.example.HelloWorld
👉 .jar 파일 생성 명령어
jar -cf [jar 파일 이름] [최상위 패키지 경로]
- jar 파일을 만드는 명령어
- -cf의 c는 create, f는 파일의 이름을 받을 준비가 되어 있음을 의미
- 만약 특정 파일만 포함하고 싶다면 [최상위 패키지 경로] 대신 [포함할 파일 또는 디렉토리] 입력
- 주의할 점
- 이렇게 작성하면 Main-Class 지정이 되지 않기 때문에 별도로 진입점 클래스를 지정해주어야 함 ⇒ 안 그러면 실제로는 실행되지 않는다고 봐도 무방
java -cp/-classpath [클래스 경로] [메인 클래스]
- ⇒
java -cp MyApp.jar com.myapp.Main
jar -cfm [생성할 JAR 파일 이름] [매니페스트 파일의 경로] [최상위 패키지 경로]
- jar 파일을 만드는 명령어
- -cfm의 m은 Manifest 파일을 명시적으로 지정할 때 사용
👉 .jar 파일이란?
- jar 파일은 zip 파일과 같은 압축 파일
- jar 파일 내부에 있는 META-INF 폴더에 MANIFEST.MF 파일이 있음
- MANIFEST 파일이란?
- 자바 애플리케이션의 정보를 담고 있는 메타데이터 파일로, 메인 함수에 대한 정보를 넣어야 함
- 그 외에도 여러 정보를 담을 수 있음
- ⇒ src 디렉토리에 Manifest.txt 파일을 생성해서 메인 함수에 대한 정보를 넣을 수 있음
- 작성 예시 : Main-Class: com.example.HelloWorld
- 보통은 MANIFEST.MF라고 이름 지어지며, META-INF 폴더 안에 위치하는 것이 일반적
👉 .jar 파일 실행하는 명령어