SIMPOLOR
단순하고 색있게
JAR 파일의 구성
단순색
·
2024년 07월 04일
Java
## JAR 파일이란? - **JAR(Java ARchive)** 파일은 여러 개의 Java 클래스 파일과 관련 리소스(예: 이미지, 설정 파일)를 하나의 파일로 묶은 **ZIP 기반의 압축 형식**입니다. - JAR 파일은 **Java 애플리케이션을 배포하고 실행하는 데 매우 유용**하며, 라이브러리 파일로도 사용됩니다. - 이 파일 형식은 Java 애플리케이션을 **단일 파일로 패키징**하여 쉽게 배포할 수 있도록 돕습니다. ## java -jar 명령어의 역할 java -jar 명령어는 **JAR 파일로 패키징된 Java 애플리케이션을 실행**하는 명령어입니다. 이 명령어는 JAR 파일 내부의 설정 정보를 참고하여 애플리케이션의 시작점을 결정합니다. ### Main 클래스 실행 - JAR 파일 내부의 META-INF/MANIFEST.MF 파일에는 애플리케이션의 메인 클래스를 지정하는 항목인 **Main-Class**가 있습니다. - java -jar myapp.jar 명령어를 사용하면 JVM은 이 **Main-Class**에 지정된 클래스를 찾아 main() 메서드를 실행합니다. ``` # MANIFEST.MF 파일 예시 Manifest-Version: 1.0 Main-Class: com.example.Main ``` 위 예시에서 Main-Class는 com.example.Main 클래스를 가리키며, 이 클래스의 main() 메서드가 애플리케이션의 진입점으로 사용됩니다. ### 애플리케이션 실행 - 패키징된 JAR 파일을 통해 **독립 실행형 Java 애플리케이션**을 실행할 수 있습니다. 이 경우 JAR 파일 안에 포함된 모든 클래스와 리소스가 함께 사용됩니다. - JVM은 MANIFEST.MF 파일에 지정된 메인 클래스의 **main() 메서드**를 실행하여 애플리케이션을 시작합니다. ``` package com.example; public class MainApp { public static void main(String[] args) { System.out.println("애플리케이션이 실행되었습니다!"); // 애플리케이션의 시작 로직 } } ``` 위 코드에서 MainApp 클래스의 main() 메서드가 실행되면서 애플리케이션이 시작됩니다. ### 결과적으로 - MANIFEST.MF 파일에 지정된 Main-Class 항목에 따라 해당 클래스의 main() 메서드가 실행됩니다. - 만약 Main-Class 항목이 없으면, java -jar 명령어는 실행에 실패합니다. ## 실행 예시 ``` > java -jar myapp.jar ``` ## 마무리 이번 글에서는 JAR 파일의 구조와 java -jar 명령어를 사용하여 애플리케이션을 실행하는 방법을 알아보았습니다. 특히, JAR 파일 내부의 MANIFEST.MF 파일에 **Main-Class**가 지정되어 있어야만 애플리케이션이 실행될 수 있다는 점을 확인했습니다. JAR 파일을 실행할 때, Main-Class의 중요성과 그 역할을 다시 상기해 볼 수 있었습니다.
연관 포스트
BigDecimal 클래스
다형성(Polymorphism)
캡슐화(Encapsulation)
추상화(Abstraction)
상속(Inheritance)