[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 เป็น String[] เท่านั้น

Q: แล้วถ้าต้องรับค่าจาก command line แต่ใช้ Eclipse หละ
A: ทดสอบทำตามขั้นตอนนี้เลย

  1. สร้าง project และ class ขึ้นมาตามปกติ จากนั้นcopy code ด้านล่างนี้ไปแปะ แล้วจัดการimport package และ ประกาศตัวแปรให้ถูกต้อง
    public class ExceptionDemo {
    	public static void main(String[] args) {
    		double a, b, c;
    		a = Double.parseDouble(args[0]); //ทำการแปลงค่าจาก arg[0] ให้เป็น double
    		b = Double.parseDouble(args[1]); //ทำการแปลงค่าจาก arg[1] ให้เป็น double
    		c = Double.parseDouble(args[2]); //ทำการแปลงค่าจาก arg[2] ให้เป็น double
    		JOptionPane.showMessageDialog(null, a+"\n"+b+"\n"+c);
    	}
    }

  2. ตอนที่จะรันโปรแกรม ให้ไปที่เมนู run-> run configuration
    1
  3. เลือกโปรแกรมที่ต้องการจะตั้งค่าในการrun ซึงก็คือ ExceptionDemo จากนั้นมาที่แท็บ Arguments
    2
  4. ใส่ค่าลงไปในช่อง Arguments 3 ค่า ดังนี้
    (อาจจะมีคนงงว่าทำไมต้องป้อน 3 ค่า กรุณาลองกลับไปดูที่ code ของโปรแกรมนี้ครับ)

     ชุดที่1: 23.57 56.23 46.32
     ชุดที่2: 2.0 -8.0 5.0

    แล้วกด Run
    3

  5. ผลลัพธ์ที่เกิดขึ้น
    4

Discover more from naiwaen@DebuggingSoft

Subscribe to get the latest posts sent to your email.