Command Line Parameters

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

  1. All arguments are Strings - need conversion for other types
  2. args.length gives number of arguments
  3. First argument is args[0], not args[1]
  4. Program name is NOT included in args array
  5. No arguments means args.length = 0
  6. Spaces separate arguments
  7. Use quotes for arguments with spaces: "Hello World"

Running in IDE

IntelliJ IDEA:

  1. Run → Edit Configurations
  2. Program arguments: arg1 arg2 arg3
  3. Run program

Eclipse:

  1. Run → Run Configurations
  2. Arguments tab
  3. Program arguments: arg1 arg2 arg3
  4. Run

VS Code:

  1. Create launch.json
  2. Add: "args": ["arg1", "arg2", "arg3"]
  3. 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:

  1. args is String array
  2. First argument: args[0]
  3. Number of arguments: args.length
  4. Convert using: Integer.parseInt(), Double.parseDouble()
  5. Always check args.length before accessing
  6. Arguments separated by spaces
  7. Use quotes for multi-word arguments
  8. 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?