A Bytecode Translator for Distributed Execution of “ Legacy ” Java Software
การสร้างแฟ้มกระท าการ Creating Executable FileFlow of the...
Transcript of การสร้างแฟ้มกระท าการ Creating Executable FileFlow of the...
•CS117 OOP•Chapter 10
การสรางแฟมกระท าการ Creating Executable File
By Dr. Paween Khoenkaw
Computer Science MJU
1
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
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
Java class file
สงรน class file ดวยค าสง java –cp . ชอไฟล(ไมตองม.class)
4
Java Class File
5
หลงจากท าการ build แลว 1 คลาสจะถกสรางเปน .class จ านวน 1 ไฟล
Java Class File
6
หากส าเนาไฟลไปไมครบชอไฟล หรอ โฟลเดอรเปลยนไปโปรแกรมจะรนไมได
Java Class File
7
ขอดของการใช class file- สรางเองโดยอตโนมตเมอท าการ build - ท างานขาม platform ได
ขอเสย- ไมมระบบความปลอดภย- ผใชตองลงโปรแกรม JRE - ตองพมพค าสงบน console เพอรน- อาจมหลายไฟลท าใหมความยงยากในการตดตงโปรแกรม
Java Archive File
hello.jar
ขอมลอภพนธ(metadata)
8
Jar File คอ Java ARchive file คอแฟมทเกดจากการรวม class file และขอมลอนๆมาท าการบบอดไวในแฟมเดยว สามารถรนบน windows ไดดวยการ double click
รนดวยค าสง java –jar ชอไฟล.jarหากเปน windows application จะ double click รนไดเลย
Java Archive File
9
ขอดของการใช jar- มการบบอดขอมล (zip) ท าใหแฟมมขนาดเลก- สราง sub directory ได- รวมแฟมทเกยวของทงหมดไวในไฟลเดยว- รองรบลายเซนดจทล- ท างานขาม platform ได
ขอเสย- ผใชตองลงโปรแกรม JRE - ตองพมพค าสงบน console เพอรน- มความยงยากในการสราง (ในกรณทไมใช eclipse)
Executable File
10
แฟมกระท าการ (Executable File) คอแฟมทใชบรรจค าสงการท างานของเครองคอมพวเตอรทเปนรหสค าสงภาษาเครอง เมอโหลดลงสหนวยความจ าแลวสามารถท างานไดเลยแฟมชนดนแตละ platform จะมโครงสรางและสวนขยายทแตกตางกนไป
ตวอยางเชน platform Windows PC จะมสวนขยายเปน .com หรอ .exe เปนตนสวนหว (header)จะขนตนดวย MZ
Executable File
hello.jar
- Header- Icon- metadata- JRE
11
Launch4j.exe
สามารถท างานไดดวยการ double clickหรอพมพชอไฟลบน console
Java Source code
Java complier
Java Bytecode
CPU
Native Code Jit Compiler
12
Executable File
JRE
JAR
CPU
Native Code Jit Compiler
13
Executable File
JRE
JAR
EXE
Wrapper
Executable File
14
ขอดของการใช Executable File- ใชงานงาย- เปลยนรป icon ได- มขอดอนๆเหมอน jar - ฝง JRE ลงไป หรอบงคบใหผใชตดตง JRE รนทตองการได
ขอเสย- ไมท างานขาม platform- แฟมมขนาดใหญ- มความยงยากในการสราง (ในกรณทไมใช launch4j)
Java Archive File
hello.jarขอมลอภพนธ(metadata)
15
JAR file เกดจากการน าเอา .class มา zip รวมกน
เราสามารถยอนขนตอนเพอดง .class ออกมาใชงานจาก .jar ไดไหม ?
hello.jarขอมลอภพนธ(metadata)
Java Archive File
16
ตอบ: สามารถท าได ในขนตอนของการ build เราสามารถน าเอา .jar มารวมเขาไปดวยไดeclipse สามารถแกะ metadata ดวาขางใน .jar ม class อะไรบางไดโปรแกรมเมอรนยมแจก code เปน .jar เพราะใชงานงาย และผน าไปใชงานไมสามารถแกไข source code ได
17
วารปกลบไปยงคาบแรก
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 ทบทวน (คาบน)
คณจะไดอะไรจากวชาน
19
หลกการเขยนโปรแกรมเชงวตถ
1 คยกบนกคอมพวเตอรรเรอง
2 คยกบคอมพวเตอรรเรอง
3 เขาใจกระบวนทศนในการเขยนโปรแกรมทมคนใชมากทสด
4 เขยนโปรแกรมภาษา JAVA ได อยางมออาชพ5 ตอยอดไปสภาษาอนเชน C# หรอ Python ไดอยางงายดาย
ความรของวชานจะเอาไปตอยอดอะไรไดบาง
20
หลกการเขยนโปรแกรมเชงวตถ
1 การออกแบบซอฟตแวร (วศวกรรมซอฟตแวร)
2 สรางเวปไซต (Java script)
3 ระบบฐานขอมล
4 สรางโปรแกรมบนระบบปฏบตการแอนดรอยด5 การประมวลผลภาพ6 อนเตอรเนตของสรรพสง
ใหทกคนกลบไปอานทบทวนหวขอทเรยนมาสอบปลายภาควนจนทรท 2 ตลาคม 2560
15.30-18.30 หอง 80-50x อาคารเรยนรวม 80 ปขอสอบมทงกา และ เตมค า
หามน าเครองคดเลขเขาหองสอบจดเขาหองสอบได 1 แผน A4 เขยนไดทง 2 หนา
ขอใหทกคนโชคด
21