Introduction
Command-line parameters (or arguments) are values passed to a program when it starts. They allow users to provide input without modifying the code.
The main Method
public static void main(String[] args) {
// args is an array of String
}
- args: Array of String containing command-line arguments
- args.length: Number of arguments passed
- args[0]: First argument
- args[1]: Second argument, and so on
Passing Arguments
Running from Command Line:
java ClassName arg1 arg2 arg3
Example:
java Hello John 25 Student
- args[0] = “John”
- args[1] = “25”
- args[2] = “Student”
- args.length = 3
Simple Examples
Example 1: Print Arguments
public class Hello {
public static void main(String[] args) {
System.out.println("Number of arguments: " + args.length);
for (int i = 0; i < args.length; i++) {
System.out.println("Argument " + i + ": " + args[i]);
}
}
}
Run:
java Hello Java Programming Language
Output:
Number of arguments: 3
Argument 0: Java
Argument 1: Programming
Argument 2: Language
Example 2: Greet User
public class Greet {
public static void main(String[] args) {
if (args.length > 0) {
System.out.println("Hello, " + args[0] + "!");
} else {
System.out.println("Hello, Guest!");
}
}
}
Run:
java Greet John
Output: Hello, John!
java Greet
Output: Hello, Guest!
Example 3: Sum of Numbers
public class Sum {
public static void main(String[] args) {
if (args.length < 2) {
System.out.println("Please provide two numbers");
return;
}
int num1 = Integer.parseInt(args[0]);
int num2 = Integer.parseInt(args[1]);
int sum = num1 + num2;
System.out.println("Sum: " + sum);
}
}
Run:
java Sum 10 20
Output: Sum: 30
Converting String Arguments
All command-line arguments are String type. Convert them as needed:
// String to int
int num = Integer.parseInt(args[0]);
// String to double
double price = Double.parseDouble(args[1]);
// String to float
float value = Float.parseFloat(args[2]);
// String to long
long big = Long.parseLong(args[3]);
// String to boolean
boolean flag = Boolean.parseBoolean(args[4]);
Example:
public class Calculate {
public static void main(String[] args) {
if (args.length != 2) {
System.out.println("Usage: java Calculate <num1> <num2>");
return;
}
int a = Integer.parseInt(args[0]);
int b = Integer.parseInt(args[1]);
System.out.println("Sum: " + (a + b));
System.out.println("Product: " + (a * b));
System.out.println("Difference: " + (a - b));
}
}
Run:
java Calculate 15 5
Output:
Sum: 20
Product: 75
Difference: 10
Checking Arguments
Check Number of Arguments:
public class CheckArgs {
public static void main(String[] args) {
if (args.length == 0) {
System.out.println("No arguments provided");
return;
}
if (args.length < 3) {
System.out.println("Need at least 3 arguments");
return;
}
// Process arguments
System.out.println("Processing...");
}
}
Complete Example
public class Student {
public static void main(String[] args) {
// Check if enough arguments
if (args.length < 3) {
System.out.println("Usage: java Student <name> <age> <marks>");
System.exit(1);
}
// Get values
String name = args[0];
int age = Integer.parseInt(args[1]);
double marks = Double.parseDouble(args[2]);
// Display
System.out.println("\nStudent Details:");
System.out.println("Name: " + name);
System.out.println("Age: " + age);
System.out.println("Marks: " + marks);
// Grade
if (marks >= 90) {
System.out.println("Grade: A");
} else if (marks >= 80) {
System.out.println("Grade: B");
} else if (marks >= 70) {
System.out.println("Grade: C");
} else {
System.out.println("Grade: D");
}
}
}
Run:
java Student John 20 85.5
Output:
Student Details:
Name: John
Age: 20
Marks: 85.5
Grade: B
Processing All Arguments
public class PrintAll {
public static void main(String[] args) {
if (args.length == 0) {
System.out.println("No arguments");
return;
}
System.out.println("Arguments received:");
// Method 1: for loop
for (int i = 0; i < args.length; i++) {
System.out.println((i + 1) + ". " + args[i]);
}
// Method 2: for-each
for (String arg : args) {
System.out.println(arg);
}
}
}
Error Handling
public class SafeConvert {
public static void main(String[] args) {
if (args.length == 0) {
System.out.println("Please provide a number");
return;
}
try {
int num = Integer.parseInt(args[0]);
System.out.println("Number: " + num);
System.out.println("Square: " + (num * num));
} catch (NumberFormatException e) {
System.out.println("Invalid number format");
}
}
}
Run:
java SafeConvert 10 # Valid
java SafeConvert abc # Invalid - shows error message
Important Points
- All arguments are Strings - need conversion for other types
- args.length gives number of arguments
- First argument is args[0], not args[1]
- Program name is NOT included in args array
- No arguments means args.length = 0
- Spaces separate arguments
- Use quotes for arguments with spaces:
"Hello World"
Running in IDE
IntelliJ IDEA:
- Run → Edit Configurations
- Program arguments:
arg1 arg2 arg3 - Run program
Eclipse:
- Run → Run Configurations
- Arguments tab
- Program arguments:
arg1 arg2 arg3 - Run
VS Code:
- Create launch.json
- Add:
"args": ["arg1", "arg2", "arg3"] - Run
Quick Reference
public class Demo {
public static void main(String[] args) {
// Check arguments
if (args.length == 0) {
System.out.println("No arguments");
return;
}
// Get arguments
String first = args[0];
String second = args[1];
// Convert
int num = Integer.parseInt(args[0]);
double d = Double.parseDouble(args[1]);
// Process all
for (String arg : args) {
System.out.println(arg);
}
}
}
Exam Tips
Remember:
- args is String array
- First argument: args[0]
- Number of arguments: args.length
- Convert using:
Integer.parseInt(),Double.parseDouble() - Always check args.length before accessing
- Arguments separated by spaces
- Use quotes for multi-word arguments
- Handle NumberFormatException for invalid input
Common Questions:
- What are command-line arguments?
- How to access arguments in main()?
- What is args[0]?
- How to convert String to int?
- What happens if no arguments provided?
- How to check number of arguments?