Home > Development tools and environments > πŸ› οΈ[개발 도ꡬ 및 ν™˜κ²½] λΉŒλ“œλœ ν”„λ‘œμ νŠΈ μ‹€ν–‰ν•˜κΈ°.

πŸ› οΈ[개발 도ꡬ 및 ν™˜κ²½] λΉŒλ“œλœ ν”„λ‘œμ νŠΈ μ‹€ν–‰ν•˜κΈ°.
Development tools Enviroments

πŸ› οΈ[개발 도ꡬ 및 ν™˜κ²½] λΉŒλ“œλœ ν”„λ‘œμ νŠΈ μ‹€ν–‰ν•˜κΈ°.

1️⃣ plain.jar와 executable.jar.

  • AWS Linux 2023 EC2 λ‚΄μ—μ„œ λ„μ„œ 관리 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λΉŒλ“œν•˜λ‹ˆ μƒˆλ‘œμš΄ build 파일이 μƒκ²¨λ‚¬μŠ΅λ‹ˆλ‹€.
    • /build/libs/ 경둜λ₯Ό 따라 λ“€μ–΄κ°€λ©΄ plain.jar 파일과 executable.jar 파일이 μƒμ„±λ˜μ–΄ μžˆλŠ” 것을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.
      library-app-0.0.1-SNAPSHOT-plain.jar  // <- plain.jar 파일
      library-app-0.0.1-SNAPSHOT.jar    // <- executable.jar 파일
      
  • 이 두 가지 νŒŒμΌμ„ 예둜 λ“€μ–΄ 각각의 μ˜λ―Έμ™€ 차이λ₯Ό μ„€λͺ…ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

2️⃣ library-app-0.0.1-SNAPSHOT-plain.jar

  • μ„€λͺ…
    • β€œPlain JARβ€λ‘œ 뢈리며, ν”„λ‘œμ νŠΈμ˜ 클래슀 파일과 λ¦¬μ†ŒμŠ€λ§Œ ν¬ν•¨λœ JARμž…λ‹ˆλ‹€.
    • μ˜μ‘΄μ„± λΌμ΄λΈŒλŸ¬λ¦¬λ‚˜ μ‹€ν–‰ μ§„μž…μ (main())이 μ„€μ •λ˜μ§€ μ•Šμ€ λ‹¨μˆœ JAR νŒŒμΌμž…λ‹ˆλ‹€.
  • 포함 λ‚΄μš©
    • ν”„λ‘œμ νŠΈ μ†ŒμŠ€μ—μ„œ λΉŒλ“œλ˜κ³  컴파일된 클래슀 파일(.class).
    • META-INF 디렉토리와 λ¦¬μ†ŒμŠ€ 파일.
  • μ‚¬μš© λͺ©μ 
    • 독립 싀행이 λΆˆκ°€λŠ₯ν•˜λ©°, λ‹€λ₯Έ ν”„λ‘œμ νŠΈμ—μ„œ μ˜μ‘΄μ„±μœΌλ‘œ μ‚¬μš©ν•  λ•Œ ν™œμš©λ  수 μžˆμŠ΅λ‹ˆλ‹€.
    • 라이브러리 ν˜•νƒœλ‘œ λ°°ν¬ν•˜κ±°λ‚˜ νŠΉμ • μž‘μ—…μ— μ‚¬μš©λ©λ‹ˆλ‹€.

3️⃣ library-app-0.0.1-SNAPSHOT.jar

  • μ„€λͺ…
    • β€œExecutable JARβ€λ‘œ 뢈리며, μ‹€ν–‰ κ°€λŠ₯ν•œ JAR νŒŒμΌμž…λ‹ˆλ‹€.
    • 이 νŒŒμΌμ—λŠ” λͺ¨λ“  μ˜μ‘΄μ„± λΌμ΄λΈŒλŸ¬λ¦¬μ™€ μ‹€ν–‰ μ§„μž…μ (main() λ©”μ„œλ“œ)을 ν¬ν•¨ν•©λ‹ˆλ‹€.
  • 포함 λ‚΄μš©
    • library-app-0.0.1-SNAPSHOT-plain.jar의 λͺ¨λ“  λ‚΄μš©.
    • μ˜μ‘΄μ„± λΌμ΄λΈŒλŸ¬λ¦¬λ“€μ΄ ν¬ν•¨λ˜μ–΄ μ‹€ν–‰ κ°€λŠ₯ν•œ ν™˜κ²½μ΄ λ©λ‹ˆλ‹€.
    • META-INF/MANIFEST.MF νŒŒμΌμ— Main-Classκ°€ μ„€μ •λ˜μ–΄ μžˆμ–΄, java -jar λͺ…λ ΉμœΌλ‘œ μ‹€ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • μ‚¬μš© λͺ©μ 
    • μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ‹€ν–‰ν•˜κ±°λ‚˜ 배포할 λ•Œ μ‚¬μš©λ©λ‹ˆλ‹€.
    • 독립 μ‹€ν–‰ κ°€λŠ₯ν•œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ JAR둜 μ‚¬μš©λ©λ‹ˆλ‹€.

4️⃣ μ£Όμš” 차이점.

ꡬ뢄 plain.jar executable.jar
μ˜μ‘΄μ„± 포함 μ—¬λΆ€ ν¬ν•¨λ˜μ§€ μ•ŠμŒ ν¬ν•¨λ˜μ–΄ 있음
μ‹€ν–‰ κ°€λŠ₯ μ—¬λΆ€ μ‹€ν–‰ λΆˆκ°€λŠ₯ μ‹€ν–‰ κ°€λŠ₯
μ‚¬μš© λͺ©μ  라이브러리 ν˜•νƒœλ‘œ μ‚¬μš© 독립 μ‹€ν–‰ κ°€λŠ₯ν•œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜
Manifest μ„€μ • Main-Class μ—†μŒ Main-Class 포함

5️⃣ 선택 κΈ°μ€€.

  • μ‹€ν–‰ κ°€λŠ₯ν•œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μœΌλ‘œ μ‚¬μš©ν•˜λ €λ©΄
    • libaray-app-0.0.1-SNAPSHOT.jarλ₯Ό μ‚¬μš©ν•˜μ—¬ μ‹€ν–‰.
      java -jar library-app-0.0.1-SNAPSHOT.jar
      
  • λΌμ΄λΈŒλŸ¬λ¦¬λ‚˜ 쒅속 ν”„λ‘œμ νŠΈλ‘œ ν™œμš©ν•˜λ €λ©΄
    • library-app-0.0.1-SNAPSHOT-plain.jarλ₯Ό λ°°ν¬ν•˜κ±°λ‚˜ μ˜μ‘΄μ„±μœΌλ‘œ μΆ”κ°€.