JAR (Java Archive) บรรจุ Class Files, Resources, Libraries ใช้สำหรับ Deploy/Distribute Application
1. สร้าง JAR File ด้วย Command Line
คำสั่งพื้นฐาน
jar cvf# c = create, v = verbose, f = file
ตัวอย่าง: สร้าง Executable JAR (มี Main-Class)
# 1. เขียนไฟล์ Sample.java
public class Sample {
public static void main(String[] args) {
System.out.println("Hi welcome to Tutorialspoint");
}
}
# 2. Compile
javac Sample.java
# 3. สร้าง Manifest (Main-Class)
echo "Main-Class: Sample" > manifest.txt
# 4. สร้าง JAR พร้อม Manifest
jar cvfm sample.jar manifest.txt Sample.class
# 5. รัน
java -jar sample.jar
# Output: Hi welcome to Tutorialspoint
2. สร้าง JAR ด้วย Eclipse IDE
- Right-click Project -> Export
- เลือก Java > Runnable JAR File
- เลือก Launch Configuration (Main Class)
- เลือก Export Destination
- Library Handling: Extract required libraries into generated JAR (แนะนำ)
- Finish
3. รัน JAR File
Executable JAR (มี Main-Class ใน Manifest)
java -jar myapp.jar
Non-Executable JAR (Library หรือไม่มี Main-Class)
# ระบุ Main Class เอง java -cp myapp.jar com.example.MainClass # หรือรวมหลาย JAR java -cp "lib/*;myapp.jar" com.example.MainClass
4. ตัวเลือก Java ที่ใช้บ่อยกับ JAR
| Option | คำอธิบาย |
|---|---|
-jar |
รัน Executable JAR (Ignore -cp) |
-cp / -classpath |
ระบุ Classpath (JARs, Directories) |
-Xmx512m |
ตั้งค่า Heap Size สูงสุด |
-Dprop=value |
Set System Property |
--module-path |
สำหรับ Module System (Java 9+) |
5. ดูข้อมูลใน JAR
# List Contents jar tf myapp.jar # Extract jar xf myapp.jar # Extract specific file jar xf myapp.jar com/example/Config.properties
สรุป
- สร้าง:
jar cvfm app.jar manifest.txt *.class(Manifest ต้องมี Main-Class) - รัน:
java -jar app.jar - Library JAR: ใช้
-cpระบุ Path - Modern: ใช้ Build Tool (Maven/Gradle) สร้าง Fat JAR (Spring Boot, Shadow Plugin) อัตโนมัติ