Đối số dòng lệnh trong Java - Tìm hiểu về đối số dòng lệnh
06/10/2021 00:51
Chúng ta biết rằng Java là một ngôn ngữ lập trình đa năng, độc lập với nền tảng. Việc thực thi một chương trình Java ít phức tạp hơn, dễ dàng và ít lỗi. Có rất nhiều tình huống mà chúng ta phải đối mặt trong quá trình lập trình cần chuyển đầu vào khi thực hiện chương trình. Trong bài trước, chúng ta đã tìm hiểu cách lấy dữ liệu người dùng đầu vào từ console, trong bài viết này, chúng ta sẽ tìm hiểu cách người dùng có thể truyền các đối số dòng lệnh trong Java trong quá trình thực thi chương trình.
Đối số dòng lệnh trong Java là gì?
Các đối số dòng lệnh trong Java cho phép người lập trình chuyển các đối số trong quá trình thực thi một chương trình. Người dùng có thể chuyển các đối số trong quá trình thực thi bằng cách chuyển các đối số trong quá trình thực thi bằng cách chuyển các đối số dòng lệnh bên trong phương thức main (). Đối số dòng lệnh không là gì khác ngoài thông tin mà chúng ta truyền vào sau khi thực thi chương trình. Các đối số này được lưu trữ dưới dạng Chuỗi trong một mảng Chuỗi được chuyển đến hàm main(). Chúng ta có thể sử dụng các đối số dòng lệnh này làm đầu vào trong chương trình Java của mình.
Ví dụ về hoạt động của đối số dòng lệnh trong Java
Giả sử có một chương trình Java và chúng ta biên dịch nó. Trong quá trình thực thi chương trình, chúng ta chuyển lệnh là “java My Program Techvidvan Java Tutorial” . Ở đây, lệnh java được sử dụng để chạy chương trình Java trong đó có chức năng chính và MyProgram là tên của tệp java mà chúng ta cần chạy. JVM coi đầu vào sau tên chương trình là các đối số dòng lệnh. Đó là trong lệnh đầu vào mà chúng ta đã nhập, “java My Program Techvidvan Java Tutorial” được coi là đối số dòng lệnh dưới dạng một mảng chuỗi.
>>> Đọc thêm: StringBuffer trong Java là gì?
Chúng ta cần chuyển các đối số dưới dạng các giá trị được phân tách bằng dấu cách. Chúng ta có thể chuyển cả chuỗi và kiểu dữ liệu nguyên thủy (int, double, float, char,...) làm đối số dòng lệnh. Các đối số này chuyển đổi thành một mảng chuỗi và được cung cấp cho hàm main() dưới dạng đối số mảng chuỗi.
Bên trong, JVM kết thúc các đối số dòng lệnh này vào mảng args[] mà chúng ta truyền vào hàm main (). Chúng ta có thể kiểm tra các đối số này bằng phương thức args.length.
JVM lưu trữ đối số dòng lệnh đầu tiên tại args [o], đối số thứ hai tại args[1], thứ hai tại args [2]...
Ví dụ:
Để hiểu đối số dòng lệnh trong Java chúng ta sẽ tạo một tệp mang tên CommandLine.java và viết đoạn code dưới đây để viết tất cả các biến mà chúng ta sẽ chuyển qua dòng lệnh.
//Display all command-line arguments.
class CommandLine
{
public static void main(String args[ ])
{
System.out.println(“The command-line arguments are:\n”);
for (int x = 0; x < args.length; x++)
System.out.println("args[" + x + "]: " + args[ x ]);
}
}
Các bước chạy đoạn code trên
Để biên dịch và chạy một chương trình java trong lệnh nhắc, chúng ta cần làm theo các bước viết dưới đây:
- Lưu chương trình là CommandLine.java
- Mở cửa sổ lệnh nhắc và biên dịch chương trình javac CommandLine.java.
- Sau khi biên dịch xong chương trình, chạy đoạn lệnh bằng cách viết các đối số -java CommandLine argument-list.
- Ví dụ - java My Program Techvidvan Java Tutorial”
- Nhấn Enter và bạn sẽ nhận được đầu ra mong muốn.
Ví dụ của đối số dòng lệnh trong Java chỉ in một đối số duy nhất
Chúng ta có thể hiển thị một đối số trong lệnh nhắc. Đoạn code dưới đây là ví dụ:
//Display one command-line argument.
class CommandLine
{
public static void main(String args[ ])
{
String name = args[3];
System.out.println("The name of the user is: " +name);
}
}
Output
>>> Đọc thêm: Sắp xếp nối bọt trong Java - Bubble Sort trong Java.
Cách truyền đối số dòng lệnh số trong Java
Phương thức main() của một chương trình Java chỉ chấp nhận dữ liệu với đối số kiểu chuỗi. Do đó, chúng ta không thể truyền đối số số qua dòng lệnh. Nếu chúng ta truyền chúng, chúng sẽ được chuyển thành chuỗi int và chúng ta không thể sử dụng chúng như số và không thể thực hiện bất kỳ thao tác số nào với chúng.
Tuy nhiên, chúng ta có thể chuyển đối các đối số chuỗi string (số) thành các giá trị số. Ví dụ:
public class NumericArguments
{
public static void main(String[] args)
{
// convert into integer type
int number1 = Integer.parseInt(args[0]);
System.out.println("First Number: " +number1);
int number2 = Integer.parseInt(args[1]);
System.out.println("Second Number: " +number2);
int result = number1 + number2;
System.out.println("Addition of two numbers is: " +result);
}
}
Output
Trong chương trình trên, chúng ta sử dụng phương thức parseInt() của lớp Integer để chuyển đối đối số string thành một integer.
Tương tự, chúng ta có thể sử dụng parseDouble() để chuyển đối chuỗi thành giá trị đôi và phương thức parseFloat() để chuyển đổi string thành giá trị float.
>>> Tham khảo: Khóa học lập trình Java
Cách truyền đối số dòng lệnh trong Eclipse IDE.
Chúng ta có thể truyền đối số dòng lệnh trong Eclipse IDE sử dụng Run Configurations.
Bước 1:
Mở chương trình Java trong Eclipse
Bước 2:
Từ bảng chỉnh sửa, nhấn chuột phải và chọn Run as. Trong đó, chọn “Run Configurations… option”. Sau khi chọn “Run Configurations” bạn sẽ thấy bảng như dưới đây
Bước 3:
Trong cửa mở mở lên, nhấn tab Arguments. Sau đó cung cấp giá trị đối số dòng lệnh trong hộp văn bản “Program Arguments”.
Bước 4:
Chọn nút Run
Khi bạn chọn nút Run, bạn sẽ nhận được kết quả như sau:
Điểm quan trọng cần ghi nhớ về Đối số dòng lệnh trong Java
- Chúng ta có thể sử dụng đối số dòng lệnh để chỉ rõ thông tin cấu hình trong khi khởi chạy ứng dụng Java của mình.
- Chúng ta có thể sử dụng bao nhiêu đối số dòng lệnh nếu cần. Không có giới hạn về số lượng các đối số dòng lệnh.
- Dữ liệu trong các đối số dòng lệnh có dạng chuỗi.
Kết luận: Đối số dòng lệnh trong Java được truyền khi thực thi chương trình và JVM cung cấp cho chúng cho chuỗi args trong phương thức main() của chương trình java. Qua bài viết này, chúng ta đã biết cách truyền Chuỗi cũng như các đối số và dòng lệnh làm đầu vào cho người dùng. Bạn cũng có thể chạy các đối số dòng lệnh trong IDE chẳng hạn như Eclipse có id quy trình từng bước được thảo luận như trên. Tìm hiểu thêm về Java và các ngôn ngữ lập trình khác qua các khóa học lập trình tại Viện công nghệ thông tin T3H..