Category Java Family

[Java] การรับค่าผ่าน command line โดยใช้ Eclipse

Q: เคยสงสัยหรือไม่ ว่า public static void main(String[] args) ตรงที่ตัวแดงไว้ มีไว้ทำอะไร A: มีไว้ เพื่อทำการรับค่าจากส่วนของ command line(หน้าจอดำๆ ของMS Dos) เพราะ java ในยุคแรกๆต้องรันผ่านหน้าจอ Dos  โดยตัว String[] args นั้นไม่จำเป็นต้องเขียนก็ได้ แต่ถ้าไม่ระบุ (String[] args) method main มันจะกลายเป็นแค่ method ทั่วๆไป เพราะ jvm specification ระบุ signature ไว้ว่ามันจะวิ่งไปทำงานที่ main ที่รับ parameter เป็น…

[Java] อยากรู้ Directory ของโปรแกรมที่เราทำงานอยู่

เมื่อทำงานที่เกี่ยวกับไฟล์ ไม่ว่าจะเป็นไฟล์รูป เท็กซ์ไฟล์ หรือไฟล์แบบอื่นๆ สิ่งที่สำคัญที่จะขาดไม่ได้เลยนั้น คือ Path ที่อยู่ของไฟล์ สำหรับนักพัฒนาโปรแกรมมือใหม่อาจจะยังไม่ใส่ใจเรื่องนี้ หรือคิดเพียงว่าเครื่องเราแสดงผล OK เป็นใช้ได้ แต่ปัญหาจะมาเกิดตอนไปรันที่เครื่องอื่นๆ เช่น กรณีตัวอย่าง โปรแกรมตัวอย่างนี้เป็นเกม Hang man ที่พัฒนาด้วยภาษา Java ซึ่งมีการกำหนด Path ของภาษา Background ตาม Code ต่อไปนี้ เมื่อนำรันที่เครื่องของน้อง กุ๊ก ปรากฏว่าสามารถแสดงผลได้สวยงาม ดังรูป น้อง กุ๊ก ส่งให้นายแว่นตรวจสอบปรากฏว่าภาษาพื้นหลังไม่ขึ้น ซวยและทีนี้ (นายแว่นวางไฟล์ไว้ในไดร์ฟ D) ปัญหา  เพราะโปรแกรมมีการกำหนดแบบ absolute path…