View
33
Download
0
Category
Preview:
Citation preview
Kasetsart University
Java ARchive (JAR)
เขียนโปรแกรม Java เบื้องต้น 2nd Edition
Kasetsart University
2
ไฟล์ .jar
เมื่อนำซอร์สโค้ด .java ไปคอมไพล์ จะได้เป็น .class ซึ่งสามารถนำไปรันได้คลาสหลายคลาสสามารถทำงานร่วมกันได้
คอมไพล์ .java หลายไฟล์ และได้เป็น .class หลายไฟล์แต่ การส่งไฟล์ไปรันหลายไฟล์จะไม่สะดวก
สามารถรวมไฟล์ .class หลายไฟล์ ให้เป็นไฟล์ .jar เดียวได้
Kasetsart University
3
การสร้าง jar
Kasetsart University
4
JAR
ไฟล์ที่ archive หมายถึงไฟล์ที่เป็นผลของการบีบอัด เช่น .zip, .rar., .7z เป็นต้น
ไฟล์ .jar เป็นผลจากการบีบอัดไฟล์ .class และไฟล์อื่นๆเข้าด้วยกัน
ทำงานเหมือนกันกับ .zip
Kasetsart University
5
คนที่ใช้งาน .jar
ผู้ใช้ (user)
นำไฟล์ไปรันได้ เหมือนกับ .exe
โปรแกรมเมอร์นำคลาสที่อยู่ในไฟล์ .jar ไปใช้งานต่อ เหมือนกับการใช้งาน library หรือกลุ่มของคลาสที่โปรแกรมเมอร์คนอื่นมาใช้พัฒนาต่อยอด
Kasetsart University
6
สร้างไฟล์ .jar
ตัวอย่าง คลาส Rectangle และ TestRectangle มาสร้าง .jar
คอมไพล์javac *.java
สร้างไฟล์ .jarjar -cf example.jar *.class
รันคลาสในไฟล์ example.jar
java -cp example.jar TestRectangle
Kasetsart University
7
ความหมายของออปชัน (option)
-c หมายถึง การสร้าง (create)
-f หมายถึง ไฟล์ (file)
-cp หมายถึง การกำหนด classpath หรือตำแหน่งที่ใช้ค้นหาคลาส
กำหนดให้ classpath คือ example.jar
Kasetsart University
8
การสร้าง jar ให้ user ใช้งาน
Kasetsart University
9
สร้างไฟล์ .jar กรณีที่ใช้แพ็กเกจ
ตัวอย่าง คลาสอยู่ในแพ็กเกจ– คลาส Rectangle อยู่ในแพ็กเกจ somchai
– คลาส TestRectangle อยู่ในแพ็กเกจ somying
Kasetsart University
10
สร้างไฟล์ .jar กรณีที่ใช้แพ็กเกจ
สร้างไฟล์ .jar และรันด้วยคำสั่งต่อไปนี้
Kasetsart University
11
อธิบายคำสั่ง
cd ..\classes เข้าไปที่โฟลเดอร์ classes – เก็บผลการคอมไพล์ไว้
jar -cf example.jar *
– เครื่องหมายดอกจัน หมายถึงให้นำทุกไฟล์ และทุกโฟลเดอร์มาใส่ไว้ในไฟล์ example.jar
Kasetsart University
12
ให้ผู้ใช้สั่งรันง่ายๆ
การสั่งรันคลาสจากไฟล์ .jar
Kasetsart University
13
ให้ผู้ใช้สั่งรัน
ออปชัน -e หมายถึง การระบุคลาสหลักที่โปรแกรม java จะเรียกขึ้นมารัน
ระบุชื่อคลาสไว้หลังชื่อไฟล์ .jar และก่อนหน้าไฟล์ที่ต้องการรวบรวมไปใส่ในไฟล์ .jar
Kasetsart University
14
ให้ผู้ใช้สั่งรัน
ออปชัน -e หมายถึง การระบุคลาสหลักที่โปรแกรม java จะเรียกขึ้นมารัน
ระบุชื่อคลาสไว้หลังชื่อไฟล์ .jar และก่อนหน้าไฟล์ที่ต้องการรวบรวมไปใส่ในไฟล์ .jar
Kasetsart University
15
คลาสหลักที่ถูกเรียกไปรัน
ลองเปลี่ยนนามสกุลจากไฟล์ example.jar เป็น example.zip
จากนั้นเปิดไฟล์ .zip
ในโฟลเดอร์ META-INF มีไฟล์ MANIFEST.MF– Manifest-Version: 1.0
Created-By: 1.6.0_18 (Sun Microsystems Inc.)
Main-Class: somying.TestRectangle
Kasetsart University
16
ระบุ Class-Path
นอกจาก Main-Class แล้วในไฟล์ MANIFEST.MF
สามารถระบุ Class-Path ได้ไม่ต้องใช้ออปชัน -cp
เตรียมไฟล์ mnf.txt– Class-Path: MyUtils.jar
สร้างไฟล์ .jar โดยเพ่ิมออปชัน m (หมายถึง manifest)
– jar cfme example.jar mnf.txt somying.TestRectangle *
ผลที่ได้
– Manifest-Version: 1.0
Class-Path: MyUtils.jar
Created-By: 1.6.0_18 (Sun Microsystems Inc.)
Main-Class: somying.TestRectangle
Kasetsart University
17
ส่งไฟล์ jar ให้โปรแกรมเมอร์คนอื่น
ต้องการเรียกใช้คลาส Rectangle– import somchai.*;
public class Test{
public static void main(String[] args){
new Rectangle().say();
}
}
คอมไพล์– javac -cp example.jar Test.java
รัน– java -cp example.jar;. Test
Kasetsart University
18
jFreeChart
ไลบรารี่สำหรับวาดกราฟ
ดาวน์โหลด http://sourceforge.net/projects/jfreechart/files
โฟลเดอร์ lib
Kasetsart University
19
Source Code
public NewJFrame() {
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("Linux", 30);
dataset.setValue("Mac", 20);
dataset.setValue("Windows", 50);
JFreeChart chart = ChartFactory.createPieChart3D("test", // chart title
dataset, // data
true, // include legend
true,
false);
ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));
setContentPane(chartPanel);
pack();
}
Kasetsart University
20
สรุป
ไฟล์ .jar คือไฟล์ .zip ที่รวมไฟล์ .class หลายๆไฟล์ไว้ด้วยกันผู้ใช้ (user) สามารถสั่งรันคลาสในไฟล์ .jar คล้ายๆ กับที่รันไฟล์ .exe
โปรแกรมเมอร์สามารถเรียกใช้คลาสในไฟล์ .jar เหมือนการเรียก library
ถ้าต้องการกำหนดให้มีคลาสหลักในไฟล์ .jar ให้กำหนดท่ีไฟล์ manifest
Recommended