อาร์กิวเมนต์บรรทัดคำสั่งใน Java [พร้อมตัวอย่าง]

เผยแพร่แล้ว: 2021-03-03

ขณะเขียนโปรแกรม Java คุณต้องสังเกตเห็น (String[] args) ในเมธอด main() สิ่งเหล่านี้คืออาร์กิวเมนต์บรรทัดคำสั่งที่ถูกเก็บไว้ในสตริงที่ส่งผ่านไปยังเมธอดหลัก อาร์กิวเมนต์เหล่านี้เรียกว่าอาร์กิวเมนต์บรรทัดคำสั่ง

เป็นเรื่องปกติที่จะใช้อาร์กิวเมนต์บรรทัดคำสั่ง เนื่องจากคุณไม่ต้องการให้แอปพลิเคชันของคุณทำสิ่งเดียวกันในทุกการทำงาน หากเราต้องการกำหนดค่าพฤติกรรม เราจะต้องใช้อาร์กิวเมนต์บรรทัดคำสั่ง

สารบัญ

การใช้อาร์กิวเมนต์บรรทัดคำสั่งคืออะไร

อาร์กิวเมนต์บรรทัดคำสั่งเหล่านี้ถูกส่งผ่านจากคอนโซล สามารถรับได้ในโปรแกรมจาวาเพื่อใช้เป็นอินพุต เราสามารถส่งอาร์กิวเมนต์ได้มากเท่าที่เราต้องการ เนื่องจากมันถูกเก็บไว้ในอาร์เรย์ นี่คือตัวอย่างวิธีที่คุณสามารถใช้อาร์กิวเมนต์บรรทัดคำสั่งได้

ในโปรแกรม

สอบในชั้นเรียน

{

โมฆะคงที่สาธารณะ main(String[] args)

{

สำหรับ (int i=0;i< args.length;++i)

{

System.out.println(args[ผม]);

}

}

}

ในคอนโซล

จาวา args1 args2 args3 …

เป็นผลให้เราได้ผลลัพธ์ที่มีอาร์กิวเมนต์เหล่านี้ซึ่งเราส่งผ่านเป็นอินพุต โปรแกรมนี้จะพิมพ์อาร์กิวเมนต์ทั้งหมดเหล่านี้โดยคั่นด้วยบรรทัดใหม่:

args1

args2

args3

อย่างที่เราเห็น อาร์กิวเมนต์บรรทัดคำสั่งต้องเป็นประเภทสตริงเท่านั้น เกิดอะไรขึ้นถ้าเราต้องการส่งตัวเลขเป็นอาร์กิวเมนต์? สมมติว่าคุณต้องการเพิ่มบางอย่างในอาร์กิวเมนต์ที่คุณส่งผ่าน หากคุณทำกับโปรแกรมข้างต้น มันจะมีลักษณะดังนี้:

ในโปรแกรม

สอบในชั้นเรียน

{

โมฆะคงที่สาธารณะ main(String[] args)

{

สำหรับ (int i=0;i< args.length;++i)

{

System.out.println(args[i]+1); System.out.println(args[i]+1);

}

}

}

ในคอนโซล

ทดสอบจาวา 11 12 13

เอาท์พุต

111

121

131

คุณจะเห็นว่ามันต่อท้ายอักขระกับ "สตริง" ของตัวเลข ในการเพิ่มตัวเลข เราต้องแปลงอาร์กิวเมนต์ให้อยู่ในรูปแบบจำนวนเต็ม ในการทำเช่นนั้น เราใช้วิธี parseInt() ของคลาส Integer การดำเนินการจะเป็นเช่น -

ในโปรแกรม

การทดสอบระดับ {

โมฆะคงที่สาธารณะหลัก (สตริง [] args) {

สำหรับ (int i = 0; i < args.length ; ++i ) {

int arg = Integer.parseInt(หาเรื่อง[i]);

System.out.println(หาเรื่อง + 1);

}

}

}

ในคอนโซล

ทดสอบจาวา 11 12 13

เอาท์พุต

12

13

14

ดังที่คุณเห็นว่าเราได้ผลลัพธ์ที่ต้องการได้อย่างไร เราสามารถทำเช่นเดียวกันกับ double() และ float() โดยใช้ parseDouble() และ parseFloat()

บางครั้ง อาร์กิวเมนต์ที่ให้มาไม่สามารถเปลี่ยนเป็นประเภทตัวเลขเฉพาะได้ ซึ่งจะส่งผลให้เกิดข้อยกเว้นที่เรียกว่า NumberFormatException

ตอนนี้ คุณอาจคิดว่าเรากำลังส่งข้อโต้แย้งเหล่านี้ไปยังใบสมัครของเรา จะส่งผลต่อประสิทธิภาพของแอพพลิเคชั่นแต่อย่างใดหรือไม่? คำตอบก็คือไม่ การส่งผ่านอาร์กิวเมนต์จะไม่ทำให้แอปพลิเคชันของคุณช้าลงหรือมีผลกระทบต่อประสิทธิภาพการทำงานอื่นๆ แม้ว่าจะเป็นเช่นนั้นก็น้อยมากและไม่ควรสังเกตเห็น

อ่าน: แนวคิดและหัวข้อโปรเจ็กต์ Java

อาร์กิวเมนต์ตัวแปรใน Java

ใน JDK 5 Java ได้รวมคุณลักษณะใหม่ที่ช่วยลดความยุ่งยากในการสร้างวิธีการที่ต้องการจำนวนตัวแปรของอาร์กิวเมนต์ คุณลักษณะนี้เรียกว่า varargs ซึ่งหมายถึงอาร์กิวเมนต์ความยาวผันแปร วิธีการที่รับตัวแปรอาร์กิวเมนต์เรียกว่าวิธี varargs

ก่อนใช้งานคุณลักษณะนี้ใน Java มีสองวิธีที่เป็นไปได้ในการส่งผ่านอาร์กิวเมนต์ของตัวแปรในแอปพลิเคชัน หนึ่งในนั้นใช้วิธีการโอเวอร์โหลด และอีกวิธีหนึ่งเกี่ยวข้องกับการส่งอาร์กิวเมนต์ในอาร์เรย์ แล้วส่งอาร์เรย์นั้นไปยังเมธอด ทั้งสองวิธีนี้มีโอกาสเกิดข้อผิดพลาดได้ง่าย Varargs แก้ปัญหาทั้งหมดที่มาพร้อมกับวิธีการก่อนหน้านี้ด้วยข้อดีเพิ่มเติมของโค้ดที่สะอาดและน้อยกว่าที่จะใช้งานได้

อาร์กิวเมนต์ความยาวผันแปรถูกระบุด้วยสามจุด (…) ด้านล่างเป็นไวยากรณ์แบบเต็มสำหรับสิ่งเดียวกัน –

โมฆะคงที่สาธารณะ varMethod(int … x)

{

// เนื้อหาของเมธอด

}

ไวยากรณ์ข้างต้นบอกคอมไพเลอร์ว่า varMethod() สามารถเรียกได้โดยมีอาร์กิวเมนต์เป็นศูนย์หรือมากกว่า

Varargs ยังสามารถโอเวอร์โหลดได้

มีกฎบางอย่างสำหรับการใช้ varargs:

  • มีอาร์กิวเมนต์ตัวแปรได้เพียงตัวเดียวในเมธอด
  • อาร์กิวเมนต์ตัวแปรต้องเป็นอาร์กิวเมนต์สุดท้าย

เกิดข้อผิดพลาดในการใช้สองอาร์กิวเมนต์ในวิธี Varargs

วิธีเป็นโมฆะ (สตริง… str, int… ก)

{

// ข้อผิดพลาดในการคอมไพล์เวลาเนื่องจากมีสองvarargs

}

เกิดข้อผิดพลาดเมื่อเราระบุ Varargs เป็นอาร์กิวเมนต์แรกแทนที่จะเป็นข้อสุดท้าย

วิธีเป็นโมฆะ (int… a, String str)

{

// ข้อผิดพลาดเวลาคอมไพล์เมื่อ vararg ปรากฏขึ้น

// ก่อนอาร์กิวเมนต์ปกติ

}

ดังนั้น หากคุณต้องการส่งผ่านอาร์กิวเมนต์ของตัวแปร คุณสามารถใช้เมธอด varargs ได้

เรียนรู้ หลักสูตรซอฟต์แวร์ออนไลน์ จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม PG สำหรับผู้บริหาร โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว

ยกระดับ อัปเกรด และอัปเดต

Java เป็นภาษาที่พิเศษจริงๆ และถูกใช้โดยบริษัทข้ามชาติและบริษัทข้ามชาติหลายแห่งเพื่อพัฒนาแอปพลิเคชันขนาดใหญ่

ขอบเขตของทักษะดังกล่าวสามารถยกระดับอาชีพของคุณได้อย่างแท้จริง upGrad ได้เปิดสอนหลักสูตรพิเศษในด้าน Machine Learning, Coding ในหลายภาษา เช่น Java, C++, C, AI, การประมวลผลภาษาธรรมชาติ และอื่นๆ อีกมากมาย เพิ่มความสดใสในอาชีพของคุณด้วยการอัพเกรดเป็นภาษาแห่งอนาคต: Java!

หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับ Java การพัฒนาซอฟต์แวร์แบบฟูลสแตก โปรดดูโปรแกรม Executive PG ของ upGrad & IIIT-B ในการพัฒนาซอฟต์แวร์แบบครบวงจร ซึ่งออกแบบมาสำหรับมืออาชีพที่ทำงานและมีการฝึกอบรมที่เข้มงวดมากกว่า 500 ชั่วโมง 9+ โครงการและการมอบหมาย สถานะศิษย์เก่า IIIT-B โครงการหลักในทางปฏิบัติและความช่วยเหลือด้านงานกับบริษัทชั้นนำ

จะรันคลาส Java โดยใช้บรรทัดคำสั่งได้อย่างไร?

ในการรันคลาส Java โดยใช้บรรทัดคำสั่ง เช่น จากเชลล์พร้อมต์ เพียงพิมพ์คำสั่ง java -jar jar_file.jar โดยที่ jar_file.jar เป็นชื่อของไฟล์ JAR ของคุณ (เช่น QuoraAnswerManager.jar) วิธีที่ง่ายที่สุดในการรันคลาส Java ในบรรทัดคำสั่งคือการคอมไพล์คลาสและจัดเตรียม classpath ให้กับคลาสนั้น คอมไพล์คลาส Java ของคุณด้วยคำสั่งต่อไปนี้: javac -classpath classpathMainFolder myClass.java จากนั้นรันคลาสที่คอมไพล์ด้วยคำสั่งต่อไปนี้: java -classpath classpathMainFolder myClass

ไฟล์ jar ใน Java คืออะไร

ใน Java มีไฟล์ jar หลายประเภท ไฟล์ Jar เป็นเพียงแพ็คเกจ รูปแบบไฟล์ JAR ถูกสร้างขึ้นสำหรับ Java และมีไว้สำหรับการแจกจ่ายซอฟต์แวร์ ไฟล์ JAR บางครั้งเรียกว่าไฟล์เก็บถาวร JAR เนื่องจากทำงานคล้ายกับไฟล์ ZIP โดยจัดเก็บไฟล์และไดเร็กทอรีหลายไฟล์ไว้ในไฟล์เดียวเพื่อการแจกจ่ายที่ง่ายดาย ไฟล์ JAR บางครั้งเรียกว่า Java Archive สิ่งนี้ไม่ถูกต้องในทางเทคนิค แต่มักใช้ในชุมชน Java ซึ่งบางครั้งทั้งคำว่า archive และ package ถูกใช้เพื่ออ้างถึงไฟล์ JAR