จาร์ (JAR = Java Archive)

จาร์ (JAR = Java Archive)

The JavaTM Archive (JAR) file format enables you to bundle multiple files into a single archive file. Typically a JAR file contains the class files and auxiliary resources associated with applets and applications.

Short Sample

DOS>javac x.java

DOS>java x

DOS>dir x.class

DOS>edit manifest.mf

DOS>jar cfm x.jar manifest.mf x.class

DOS>java -jar x.jar

 

1 องค์ประกอบของ JAR

Jar (ava Archieve) หมายถึง ที่เก็บเอกสาร เป็นแฟ้มที่มีสกุลเป็น .jar สามารถเก็บแฟ้มต่าง ๆ ได้เหมือนกับแฟ้ม .zip แต่ผู้พัฒนาสามารถเรียกใช้โปรแกรมภายในแฟ้ม .jar ได้ทันที โดยไม่ต้องแตกแฟ้มออกมาก่อน แล้วจึงเรียกใช้เหมือนกับแฟ้ม .zip

Manifest หมายถึง บัญชีแสดง ซึ่งการเรียกใช้แฟ้ม .jar จะค้นหาแฟ้ม manifest.mf ที่ผู้พัฒนาสร้างขึ้น และกำหนดให้แฟ้มใดเป็นแฟ้มแรกที่จะถูกประมวลผล

            ตัวอย่างแฟ้ม manifest.mf

Manifest-Version: 1.0

Main-Class: x

2 การสร้างและใช้งาน JAR

ประโยชน์ของแฟ้ม JAR

– มีความปลอดภัย

– ลดเวลาดาวน์โหลดแฟ้ม

– ลดขนาดแฟ้ม

– รวมเป็นห่อเพื่อขยับขยายภายหลัง

– กำหนดรุ่น และตีตราชัดเจน

– พกพาสะดวก

  1. สร้าง manifest.mf (Manifest คือ บัญชีแสดง)

– Warning :  The text file from which you are creating the manifest must end with a new line or carriage return.

The last line will not be parsed properly if it does not end with a new line or carriage return.

– When you create a JAR file, it automatically receives a default manifest file. There can be only one manifest

file in an archive, and it always has the pathname META-INF/MANIFEST.MF

พบ 2 บรรทัดนี้ใน MANIFEST.MF

Manifest-Version: 1.0

Main-Class: x

 

  1. ตัวอย่างการสร้าง .jar

DOS>jar cfm x.jar manifest.mf x.class

DOS>jar cfm x.jar manifest.mf x.class y.class z.class

DOS>jar cfm x.jar manifest.mf v1/*.class

 

  1. ดูแฟ้มใน .jar

DOS>jar tf x.jar

META-INF/

META-INF/MANIFEST.MF

x.class

 

  1. แตกแฟ้ม .jar

DOS>jar xf x.jar

 

  1. ปรับปรุงหรือแทนที่แฟ้มเดิม

DOS>jar uf x.jar x.class

 

  1. ประมวลผล application

DOS>java -jar x.jar

 

  1. ประมวลผล applet ในแฟ้ม x.htm

< applet code=x.class archive=x.jar width=120 height=120>

</applet>

 

กรณีตัวอย่าง checker01.jar พบเกมหมากฮอส

 

จึงเป็นแนวคิดในการเขียนตาราง เพื่อใช้สอนนักศึกษาใช้ applet และ .jar

Download : checker01.zip (Only .jar Executed)Download : checker02.zip (Simulation : test)

DOS>jar cfm checker01.jar manifest.mf checker01.class checker01b.gif checker01w.gif

 

import java.awt.*;

import java.applet.*;

import java.net.*; // Class URL

public class checker01 extends Applet {

Image imgb,imgw;

URL url;

int w = 42;

public void init() {

setBackground(new Color(192,192,192));

url = this.getClass().getResource(“checker01w.gif”);

imgw = Toolkit.getDefaultToolkit().getImage(url);

url = this.getClass().getResource(“checker01b.gif”);

imgb = Toolkit.getDefaultToolkit().getImage(url);

// imgw = getImage(getCodeBase(),”x.gif”); outside .jar

}

public void paint(Graphics g) {

g.setColor(Color.white);

for (int i=0;i<4;i++)

for (int j=0;j<4;j++) {

g.fillRect(i*w*2,j*w*2,w,w);

g.fillRect(i*w*2 + w,j*w*2 + w,w,w);

}

for (int i=0;i<4;i++) {

g.drawImage(imgw,i*w*2 + w,0,this);

g.drawImage(imgw,i*w*2,w,this);

g.drawImage(imgb,i*w*2 + w,w * 6,this);

g.drawImage(imgb,i*w*2,w * 7,this);

}

}

}

 

 

ต.ย.ใน appletviewer

checker01

– ทำงานได้ในแฟ้ม .jar แฟ้มเดียว

– วาดตารางด้วย fillRect

– load ภาพมา drawImage checker02

– ยังไม่ทดสอบใน .jar ให้ฝึกสร้างเอง

– แสดงการเดินหมาก ใช้ข้อมูลจากอาร์เรย์

– ถ้าอ่านหมากจากแฟ้มจะยืดหยุ่นกว่านี้

คำสั่งเรียก Applet ใน checker01.htm

<applet code=checker01.class

archive=checker01.jar width=336 height=336>

</applet>

 

แฟ้ม checker01.jar ทำหน้าที่เก็บทั้ง .class และ image หากเรียก .jar เข้า archive ก็จะเรียนสิ่งที่อยู่ในนั้นได้