เริ่มใช้ Eclipse
 

มาลองเครื่องมือใหม่กัน เมื่อตอนปีหนึ่ง ทุกคนใช้ JLab ในการเขียนจาวา ปีนี้เราจะมาใช้เครื่องมืออีกตัว เรียกว่า Eclipse 

ก่อนอื่นมาดูวิธี install กันก่อน (ที่ศูนย์คอมฯเราได้ลงไว้ให้ทุกคนแล้ว หา shortcut เอา ถ้าไม่มีต้องเรียกพี่ๆนะ)

1. download file zip มาจาก www.eclipse.org (ราวๆ 171 MB)  ปกติเราจะใช้ Eclipse classic ปัจจุบันอยู่เวอร์ชั่น 3.6.2 นะ
2. extract zip file ไปที่ directory ที่ต้องการลง

มีแค่นี้เลย install ง่ายมาก (แต่จะใช้เขียนจาวาได้ ต้องลงจาวาก่อน)

เอาล่ะ พออินสตอลเรียบร้อยแล้ว ลอง double click ขึ้นมาดู  

ถ้าเปิดเข้าไปครั้งแรกก็จะมีกล่องขึ้นมาสำหรับใส่ folder ที่จะเก็บผลงานของตัวเอง เรียกว่าเป็นการเลือก workspace

ใน lab นี้ให้ใส่ว่า z:\eclipse  ถ้าติ๊กเครื่องหมายถูกก็หมายความว่าเวลาเปิดครั้งหน้าก็ไม่ต้องมาถามอีก(ที่ไม่เอาไว้ drive c เพราะว่าศูนย์คอมฯ ไม่ให้ใช้นะ และ drive z ก็จะเป็นของแต่ละคนอยู่แล้ว แต่ว่าตอนสอบอาจต้องมีการย้ายมาที่ c เพราะว่าจะมีการตรวจในห้อง) แต่เวลาอยู่ที่บ้านก็เอาไว้ที่ drive c ก็ได้ตามสะดวกนะ

ตัว drive z นั้น เวลาเรา log in เข้าไปมันจะไปเชื่อมโยงกับที่เก็บข้อมูลส่วนตัวของเราในศูนย์คอม เพราะฉะนั้นเวลาต้องการใช้ เราสามารถไปนั่งที่เครื่องไหนก็ได้นะ
 

หน้าต่างหน้า intro จะเป็นแบบนี้


ปิดทิ้งไป วลาปิดให้กด กากบาทที่ด้านซ้ายบนของหน้าต่าง intro นะ อย่าเผลอไปกดมุมขวาบนของ Eclipse ล่ะ

วิธีการสร้าง project

ก่อนจะเริ่มทำงานแต่ละงาน เราจะต้องสร้าง project ก่อน ที่ต้องมี project ก็เพื่อเอาไว้เก็บงานให้เป็นหมวดหมู่ จะได้ไม่ปะปนกันเวลาไฟล์เยอะๆ

เวลาจะสร้าง project ให้ไปที่ File ตรงมุมซ้ายบนแล้วเลือก new ->


 

เราจะเขียนโปรแกรม Java เพราะฉะนั้น เราก็เลือก Java Project

เสร็จแล้วก็พิมพ์ชื่อ project ลงไป โดย case sensitive ตรงนี้จะสังเกตว่าเราเลือกได้ทั้ง next และ finish (ปกติเราแค่จะสร้าง project ง่ายๆ เพราะ ฉะนั้นกด finish เลยก็ได้)
 


Tips

การสร้างโปรเจ็ค รวมไปถึงการทำอะไรต่างๆอีกมากมาย สามารถทำได้โดยการ Right click ในหน้าวินโดว์ซ้ายมือ จะมีเมนูมาให้เลือกสร้างโปรเจ็คใหม่ หรือสร้างคลาส


พอเสร็จแล้วในหน้าต่างด้านซ้ายก็จะมี project ของเราขึ้นมา เป็นการแสดงว่า project ของเราสร้างอยู่ในเครื่องแล้ว ต่อไปมันก็จะถามว่าจะเปลี่ยน perspective รึเปล่า ตอบ yes ไปละกัน (perspective คือตัวกำหนดวินโดว์ที่จะขึ้นมาบนจอ ว่าเป็นรูปแบบใด ปกติเวลาเราเขียนโปรแกรมจาวา ก็จะใช้ Java perspective ชนิดของ perspective ที่ใช้อยู่ ณ ปัจจุบัน สามารถดูได้จากด้านขวาบนของ Eclipse ดังรูปด้านล่างนี้ ซึ่งแสดงให้เห็นว่าตอนนี้อยู่ใน Java perspective แต่ก็สามารถไปคลิก Debug เพื่อเปลี่ยนหน้าต่างให้เป็น Debug perspective ได้ หน้าต่างก็จะเป็นคนละชุด ใช้งานคนละอย่างกัน ลองสังเกตดู)

หน้าจอตามปกติใน Java perspective แบ่งออกเป็น 4 ส่วน ดังนี้ครับ ซึ่งแต่ละส่วนเราสามารยืดขยายได้ตามใจ แล้วลากไปไหนก็ได้ด้วย สามารถขยายวินโดว์ย่อยอันไหนให้เต็มจอ (และย่อกลับคืน)ได้ด้วยการ double click ที่ tab ของวินโดวน์นั้น 



การสร้างไฟล์จาวา

ลองเลือกสร้าง class จาก File-> New ->Class หรือจาก pop up menu 
พอคลิกไปแล้วจะเห็นเป็นช่องๆ ให้กรอกรายละเอียดของ class

 

ในรูปตัวอย่างนี้ เป็นการสร้างคลาสใหม่ของ project ที่ชื่อว่า sort

ลองทำดูเอง ให้ลองสร้าง public class ชื่อ Hello ที่มี method main โดยไม่ต้อง inherit abstract method (ให้สร้างโดยใช้ ช่องที่ให้กรอกกับกา เท่านั้นนะ ห้ามมาพิมพ์เองทีหลังล่ะ)

พอสร้างเสร็จแล้วมันอาจจะมี comment เต็มไปหมดเลย ให้ปล่อย comment พวกนั้นเอาไว้นั่นแหละ ไม่ต้งลบทิ้งหรอกนะ (Eclipse สามารถช่วยเราร่าง comment ได้)

คราวนี้จะทำแบบครั้งแรกๆของจาวา โดยให้เขียนโปรแกรมให้พิมพ์คำว่า "I am Ironman."

เขียนเล้ยยยยยยย

ตอนที่เขียนอยู่ จะสังเกตว่า ชื่อไฟล์จะมีเครื่องหมาย * ขึ้นมาด้วยด้านหน้า ซึ่งหมายความว่า ไฟล์นี้ยังไม่ได้ save

ยังไม่ต้อง save นะ ให้ลองรันดูเลย ให้ไปที่เมนู Run แล้วเลือก Run As Java Application (ตรงนี้มันจะมีถามว่าจะ save รึเปล่า ก็ save ได้ตรงนี้เลย สรุปคือ Eclipse จะช่วยเรา save ไฟล์ได้อัตโนมัติ ) ผลลัพธ์จะออกที่ console ที่หน้าต่างล่าง

หมายเหตุ: Eclipse ช่วยเตือนเราว่าให้ save ในตอนที่จำเป็น ซึ่งเจ๋งมาก แต่ปัญหาคือ บางทีมันไม่ทำ เพราะฉะนั้น บางทีถ้าโปรแกรมรันไม่ได้ เราก็อาจจะต้อง save ด้วยตัวเองอีกรอบ ก่อนที่จะรันใหม่


การอิมพอร์ตไฟล์ 

การ import คือ การนำเอาไฟล์ที่ถูกสร้างไว้อยู่แล้วเข้ามาใน project เอาเป็นว่ามันคือการ copy ไฟล์เข้ามาใส่ใน project ที่เราต้องการนั่นแหละครับ แต่แทนที่เราจะทำใน windows explorer ก็ใช้วิธีนี้แทนจะง่ายกว่า

วิธีทำก็คือ คลิกขวาที่ชื่อ project แต่คราวนี้ให้เลือก import แทน

พอเข้าไปก็มีตัวเลือกอีกนั่นแหละ ที่ขอแนะนำในตอนนี้มีอยู่สองอัน ครับคือ file system หมายถึง import file ปกติเลย ส่วนอีกอันก็คือ Archive file ครับ จะเป็นการแตกไฟล์ zip พร้อมกับ import เข้ามา (zip ไฟล์ จะมีนามสกุล .jar ก็ได้ นี่เป็นไฟล์ที่เป็นการซิปใช้กับจาวา คงเคยเห็นกันมาแล้วจาก JLab)



-------
InsertionSort
ลอง import ไฟล์นี้ดูแล้วกันนะครับ อันนี้เป็นแบบเอาจากจาร์

เอาล่ะ ลอง import จาก file system ดูบ้าง ลอง unzip ตัวจาร์ที่โหลดมาไปไว้ซักที่ไหนที่หนึ่งใน drive z แล้วสร้างโปรเจ็คใหม่เลย แล้วคราวนี้ import จากโฟลเดอร์ที่ unzip ไว้
เลือกที่ตัว folder InsertionSort ตามรูปด้านล่างเลย 

 

ไม่ว่าจะสร้างคลาสใหม่หรืออิมพอร์ตมา ก็เอามารันได้ ตราบใดที่มีคลาส ที่มีเมธอด main อยู่  ลองรัน insertion sort จากโปรแกรมดู ลองเปลี่ยนพารามิเตอร์ในอาร์เรย์ a ดูแล้วลองรันโปรแกรมแล้วปริ๊นออกมา ดูซิว่าได้เลขเรียงกันหรือไม่ (โปรแกรมนี้เป็นโปรแกรม์เรียงเลขในอาร์เรย์ให้เป็นค่าจากน้อยไปมาก)

การสร้าง .jar ไฟล์

จริงๆ แล้ว จาร์ก็คือ zip นั่นเอง แต่เราสามารถทำให้มัน executable ได้ด้วย นั่นคือ เปิดเป็นวินโดว์แล้วรันได้แบบโปรแกรมวินโดว์อื่นๆ (double click ใน window explorer แล้วมันจะ run program ที่เขียนด้วยภาษา Java ได้ มีประโยชน์มากกับโปรแกรมที่เปิดเป็นวินโดว์)

lab ของเราทุก lab ถ้ามีการให้ส่งไฟล์งาน จะต้องส่งเป็น jar file

วิธีสร้าง .jar fie เนี่ยก็คลิกขวา ที่ชื่อ project แล้ว เลือก export จากนั้นก็เลือก jar file เสร็จแล้วก็ใส่ชื่อไฟล์ลงไป และเลือก option ให้เรียบร้อย(อย่าลืมเลือกให้ include source นะ)

 


 

 

สำคัญ: lab ส่วนใหญ่จะต้องมี source code หรือ text file เพราะฉะนั้นควรจะทำการสร้างไฟล์เหล่านี้ไว้ที่ตัว project เลย แล้วเวลาสร้าง jar ไฟล ์นั้นในกลุ่มช่องตรงกลางก็ให้ติ๊กที่ช่อง Export java source files and resources (หมายถึง source code) เสมอ

(สรุปคือ ให้ติ๊ก  2 ช่องคือ Export generated class files and resources และ Export java source files and resources)

แบบนี้แล้วใน jar file ก็จะมี class ไฟล์ ต่างๆ ที่เราสร้างขึ้นเอง แล้วก็ source code ครบถ้วน

สำคัญ: ก่อนที่จะส่ง jar file ก็ลองใช้ winzip extract ออกมาดูซักหน่อยก็แล้วกันนะจะได้แน่ใจว่าส่งไฟล์ไปครบถ้วนหรือเปล่า และถ้าใครอยากจะใช้วิธีการ copy ไฟล์ที่ต้องการมาไว้ใน project ใหม่ แล้วใช้ project นั้นสร้าง jar ก็ทำได้เหมือนกันนะ"  


เอาล่ะ ถือว่าบอกแล้ว ต่อจากนี้ไป ถ้าใคร jar ไฟล์ส่งมาแล้วไม่มี source ก็จะถือว่าคะแนน source code เป็น 0 ทันทีนะ :)




Tips & tricks (ต้องอ่านเป็นอย่างยิ่ง)


1. คุณเคยมีปัญหารึเปล่าครับ เกี่ยวกับการที่ไม่รู้ว่าขณะนี้ cursor ของคุณกำลังอยู่ที่ row ไหน column เท่าไหร่ ถ้าคุณกำลังเผชิญปัญหานี้ เราสามารถแก้ให้คุณได้ เพียงแค่คุณ เหลือบตามองลงไปด้านล่าง ของ Eclipse จะเห็นตัวเลขสองตัวกั้นด้วย colon แสดง row และ column ของคุณอยู่ แต่อย่าเพิ่งครับ ยัง ยังไม่หมดเพียงเท่านี้ ถ้าคุณอยากจะรู้ว่าข้อความที่คุณเห็นอยู่บนหน้าจอนั้นอยู่ที่บรรทัดที่เท่าไหร่ ลองทำตามที่เราแนะนำสิครับ
1.1 ไปที่ menu Window เลือก Preferences
1.2 ที่ General -> Editor -> Text Editors ติ๊กที่ช่อง show line numbers
เพียงเท่านี้ทุกครั้งที่ คุณเปิด Java Editor ก็จะมีเลขบรรทัดกำกับอยู่ด้านหน้า 


2. กรณีที่หาคู่ของ วงเล็บ หรือ ปีกกาไม่เจอ ให้ขยับ cursor ไปด้านหลังของวงเล็บหรือปีกกาอันใดอันหนึ่งแล้วคู่ของมันจะปรากฏกรอบสี่เหลี่ยมขึ้นมาล้อมรอบทันที

3. กรณีที่มีไฟล์ภาษา Java ที่เขียนมาอย่างไร้ซึ่งรูปแบบจนดูไม่รู้เรื่อง ให้ลองเปิด menu source แล้ว เลือก Format     หรือกด Ctrl+Shift+F   แล้ว source ของคุณจะถูกจัดรูปแบบอย่างสวยงาม

4. ถ้ากำลังจะต้องพิมพ์ชื่อ class หรือ variable ยาวๆ ที่คุณนึกไม่ออกหรือขี้เกียจพิมพ์ ขณะเริ่มพิมพ์อักษรไปบางตัวให้กด Ctrl+Space แล้วจะปรากฎตัวเลือกออกมาให้คุณเลือกใช้ได้

5. ที่ menu Window เลือก Show View แล้วจะมี view สำหรับดู project หลายๆ แบบ แสดงออกมา แบบที่ขอแนะนำเบื้องต้นมีสองแบบ
5.1 package explorer จะแสดงให้เห็นเฉพาะส่วนที่มั่นใจว่าเกี่ยวข้องกับการเขียนโปรแกรมใน project เท่านั้น
5.2 navigator จะแสดงทุกอย่างใน directory ของ project(เหมือนดูจาก windows explorer)

6. ถ้าต้องการเปลี่ยนพวกชื่อตัวแปร ชื่อไฟล์ และอะไรก็ตามที่เกี่ยวกับชื่อให้ ใช้วิธี refactor จะดีกว่า search แล้ว replace เพราะมันจะเปลี่ยนชื่อโดยดูผลกระทบกับโปรแกรมและส่วนต่างๆที่เกี่ยวข้องไปในตัว  เวลาทำ ใช้วิธีคลิกขวาที่ชื่อที่ต้องการเปลี่ยน แล้วเลือก Refactor -> Rename

7. กรณีที่พยายาม run files แล้วปรากฏว่า ไฟล์ที่ run กลับ กลายเป็นไฟล์อื่น ให้ทำการเปลี่ยน focus ไปที่ file ที่ต้องการจะ run แล้วลอง run ใหม่อีกที

8. เวลาที่ลบ project จะมีให้เลือกว่า จะลบ content รึเปล่า(ลบ content ก็คือลบไฟล์ใน directory ของ project จริงๆ ถ้าไม่เช่นนั้น แล้วจะเป็นเพียงการทำให้มองไม่เห็น project นั้นเท่านั้น)

9. ถ้าเปิด class ไฟล์ ออกมาโดยไม่มี source มันก็จะขึ้นมาบอกว่าไม่มี source ของไฟล์ แล้วบอกได้แค่ว่ามี method และ ตัวแปรบางตัว  (อาจมี assembly ซึ่งเป็นsource code ที่แปลงเตรียมให้เครื่องอ่าน หลุดมาด้วย) แต่ class ไฟล์ ก็ยังใช้งานได้ตามปกตินะ เช่น ถ้ามี main class ก็ลองสั่งให้ run ได้

 
Advice
1. วันไหนมีแล็บ มาให้ตรงเวลา ทำให้เต็มที่
2. พยายามทำเอง กะเวลาไว้ ถ้าทำไม่ได้ในเวลาที่กำหนด ปรึกษาเพื่อนๆ และพี่ๆ TA หรืออาจารย์  แต่ทำได้เองจะดีที่สุด
3. ถ้ามีข้อสงสัย ถาม TA หรืออาจารย์ ไม่ต้องเกรงใจให้มากนัก เพราะถ้าไม่มีใครถามเลยพวกเราจะรู้สึกเบื่อมาก
4. เวลาเขียนโปรแกรมภาษา Java 'help สำคัญยิ่งชีพ' ถ้าไม่มี help file ในเครื่องก็เปิดดูได้จาก java.sun.com