การสร้างแฟ้มกระท าการ creating executable fileflow of the...

21
CS117 OOP Chapter 10 การสร้างแฟ้มกระทาการ Creating Executable File By Dr. Paween Khoenkaw Computer Science MJU 1

Upload: others

Post on 07-Mar-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: การสร้างแฟ้มกระท าการ Creating Executable FileFlow of the program Java Source code Java complier Java Bytecode Bytecode CPU Native Code Jit

•CS117 OOP•Chapter 10

การสรางแฟมกระท าการ Creating Executable File

By Dr. Paween Khoenkaw

Computer Science MJU

1

Page 2: การสร้างแฟ้มกระท าการ Creating Executable FileFlow of the program Java Source code Java complier Java Bytecode Bytecode CPU Native Code Jit

Flow of the program

Java Source code

Java complier(build)

Java Bytecode

Bytecode

CPU

Native Code Jit Compiler

การ compile โปรแกรมภาษา Java

การ Run โปรแกรมทสรางดวยภาษา Java

Helloworld.java javac Helloworld.class

Helloworld.class

java

2

Page 3: การสร้างแฟ้มกระท าการ Creating Executable FileFlow of the program Java Source code Java complier Java Bytecode Bytecode CPU Native Code Jit

Flow of the program

Java Source code

Java complier

Java Bytecode

Bytecode

CPU

Native Code Jit Compiler

วธท 1 แจก Bytecodeไฟลนจะเปน .classตอนใชงานตองลง JRE และท าการรนโปรแกรมดวยค าสงJava –cp . ชอไฟลใชงานยงยาก แตไฟลเลกและท างานไดทก platform

3

Page 4: การสร้างแฟ้มกระท าการ Creating Executable FileFlow of the program Java Source code Java complier Java Bytecode Bytecode CPU Native Code Jit

Java class file

สงรน class file ดวยค าสง java –cp . ชอไฟล(ไมตองม.class)

4

Page 5: การสร้างแฟ้มกระท าการ Creating Executable FileFlow of the program Java Source code Java complier Java Bytecode Bytecode CPU Native Code Jit

Java Class File

5

หลงจากท าการ build แลว 1 คลาสจะถกสรางเปน .class จ านวน 1 ไฟล

Page 6: การสร้างแฟ้มกระท าการ Creating Executable FileFlow of the program Java Source code Java complier Java Bytecode Bytecode CPU Native Code Jit

Java Class File

6

หากส าเนาไฟลไปไมครบชอไฟล หรอ โฟลเดอรเปลยนไปโปรแกรมจะรนไมได

Page 7: การสร้างแฟ้มกระท าการ Creating Executable FileFlow of the program Java Source code Java complier Java Bytecode Bytecode CPU Native Code Jit

Java Class File

7

ขอดของการใช class file- สรางเองโดยอตโนมตเมอท าการ build - ท างานขาม platform ได

ขอเสย- ไมมระบบความปลอดภย- ผใชตองลงโปรแกรม JRE - ตองพมพค าสงบน console เพอรน- อาจมหลายไฟลท าใหมความยงยากในการตดตงโปรแกรม

Page 8: การสร้างแฟ้มกระท าการ Creating Executable FileFlow of the program Java Source code Java complier Java Bytecode Bytecode CPU Native Code Jit

Java Archive File

hello.jar

ขอมลอภพนธ(metadata)

8

Jar File คอ Java ARchive file คอแฟมทเกดจากการรวม class file และขอมลอนๆมาท าการบบอดไวในแฟมเดยว สามารถรนบน windows ไดดวยการ double click

รนดวยค าสง java –jar ชอไฟล.jarหากเปน windows application จะ double click รนไดเลย

Page 9: การสร้างแฟ้มกระท าการ Creating Executable FileFlow of the program Java Source code Java complier Java Bytecode Bytecode CPU Native Code Jit

Java Archive File

9

ขอดของการใช jar- มการบบอดขอมล (zip) ท าใหแฟมมขนาดเลก- สราง sub directory ได- รวมแฟมทเกยวของทงหมดไวในไฟลเดยว- รองรบลายเซนดจทล- ท างานขาม platform ได

ขอเสย- ผใชตองลงโปรแกรม JRE - ตองพมพค าสงบน console เพอรน- มความยงยากในการสราง (ในกรณทไมใช eclipse)

Page 10: การสร้างแฟ้มกระท าการ Creating Executable FileFlow of the program Java Source code Java complier Java Bytecode Bytecode CPU Native Code Jit

Executable File

10

แฟมกระท าการ (Executable File) คอแฟมทใชบรรจค าสงการท างานของเครองคอมพวเตอรทเปนรหสค าสงภาษาเครอง เมอโหลดลงสหนวยความจ าแลวสามารถท างานไดเลยแฟมชนดนแตละ platform จะมโครงสรางและสวนขยายทแตกตางกนไป

ตวอยางเชน platform Windows PC จะมสวนขยายเปน .com หรอ .exe เปนตนสวนหว (header)จะขนตนดวย MZ

Page 11: การสร้างแฟ้มกระท าการ Creating Executable FileFlow of the program Java Source code Java complier Java Bytecode Bytecode CPU Native Code Jit

Executable File

hello.jar

- Header- Icon- metadata- JRE

11

Launch4j.exe

สามารถท างานไดดวยการ double clickหรอพมพชอไฟลบน console

Page 12: การสร้างแฟ้มกระท าการ Creating Executable FileFlow of the program Java Source code Java complier Java Bytecode Bytecode CPU Native Code Jit

Java Source code

Java complier

Java Bytecode

CPU

Native Code Jit Compiler

12

Executable File

JRE

JAR

Page 13: การสร้างแฟ้มกระท าการ Creating Executable FileFlow of the program Java Source code Java complier Java Bytecode Bytecode CPU Native Code Jit

CPU

Native Code Jit Compiler

13

Executable File

JRE

JAR

EXE

Wrapper

Page 14: การสร้างแฟ้มกระท าการ Creating Executable FileFlow of the program Java Source code Java complier Java Bytecode Bytecode CPU Native Code Jit

Executable File

14

ขอดของการใช Executable File- ใชงานงาย- เปลยนรป icon ได- มขอดอนๆเหมอน jar - ฝง JRE ลงไป หรอบงคบใหผใชตดตง JRE รนทตองการได

ขอเสย- ไมท างานขาม platform- แฟมมขนาดใหญ- มความยงยากในการสราง (ในกรณทไมใช launch4j)

Page 15: การสร้างแฟ้มกระท าการ Creating Executable FileFlow of the program Java Source code Java complier Java Bytecode Bytecode CPU Native Code Jit

Java Archive File

hello.jarขอมลอภพนธ(metadata)

15

JAR file เกดจากการน าเอา .class มา zip รวมกน

เราสามารถยอนขนตอนเพอดง .class ออกมาใชงานจาก .jar ไดไหม ?

hello.jarขอมลอภพนธ(metadata)

Page 16: การสร้างแฟ้มกระท าการ Creating Executable FileFlow of the program Java Source code Java complier Java Bytecode Bytecode CPU Native Code Jit

Java Archive File

16

ตอบ: สามารถท าได ในขนตอนของการ build เราสามารถน าเอา .jar มารวมเขาไปดวยไดeclipse สามารถแกะ metadata ดวาขางใน .jar ม class อะไรบางไดโปรแกรมเมอรนยมแจก code เปน .jar เพราะใชงานงาย และผน าไปใชงานไมสามารถแกไข source code ได

Page 17: การสร้างแฟ้มกระท าการ Creating Executable FileFlow of the program Java Source code Java complier Java Bytecode Bytecode CPU Native Code Jit

17

วารปกลบไปยงคาบแรก

Page 18: การสร้างแฟ้มกระท าการ Creating Executable FileFlow of the program Java Source code Java complier Java Bytecode Bytecode CPU Native Code Jit

18

หลกการเขยนโปรแกรมเชงวตถสปดาหท หวขอ/รายละเอยด

1-2 Introduction และทดสอบกอนเรยน

3-4 Object Oriented Programming (มโนทศน)

5 Java Fundamental (พนฐาน java ในคาบแลป)

6-7 Classes Relation (วาดผงคลาส)

8-9 Inheritance (ทฏษฎการสบทอด)

10-11 Interfaces (คลาสนามธรรม)

12 Refactoring (การปรบโครงสราง codeเกาใหเปนoop)

13 Object Oriented Design Pattern (การออกแบบคลาส)

14 Object-Oriented Application Frameworks (AWT/Swing platform)

15 ทบทวน (คาบน)

Page 19: การสร้างแฟ้มกระท าการ Creating Executable FileFlow of the program Java Source code Java complier Java Bytecode Bytecode CPU Native Code Jit

คณจะไดอะไรจากวชาน

19

หลกการเขยนโปรแกรมเชงวตถ

1 คยกบนกคอมพวเตอรรเรอง

2 คยกบคอมพวเตอรรเรอง

3 เขาใจกระบวนทศนในการเขยนโปรแกรมทมคนใชมากทสด

4 เขยนโปรแกรมภาษา JAVA ได อยางมออาชพ5 ตอยอดไปสภาษาอนเชน C# หรอ Python ไดอยางงายดาย

Page 20: การสร้างแฟ้มกระท าการ Creating Executable FileFlow of the program Java Source code Java complier Java Bytecode Bytecode CPU Native Code Jit

ความรของวชานจะเอาไปตอยอดอะไรไดบาง

20

หลกการเขยนโปรแกรมเชงวตถ

1 การออกแบบซอฟตแวร (วศวกรรมซอฟตแวร)

2 สรางเวปไซต (Java script)

3 ระบบฐานขอมล

4 สรางโปรแกรมบนระบบปฏบตการแอนดรอยด5 การประมวลผลภาพ6 อนเตอรเนตของสรรพสง

Page 21: การสร้างแฟ้มกระท าการ Creating Executable FileFlow of the program Java Source code Java complier Java Bytecode Bytecode CPU Native Code Jit

ใหทกคนกลบไปอานทบทวนหวขอทเรยนมาสอบปลายภาควนจนทรท 2 ตลาคม 2560

15.30-18.30 หอง 80-50x อาคารเรยนรวม 80 ปขอสอบมทงกา และ เตมค า

หามน าเครองคดเลขเขาหองสอบจดเขาหองสอบได 1 แผน A4 เขยนไดทง 2 หนา

ขอใหทกคนโชคด

21