In , command line arguments is a way to pass inputs to the java program during application execution. Command line arguments can be passed by multiple ways to Java application or program. Most commonly, command line arguments are passed from console where a is executed. command-line arguments, provided during program execution, are captured in the main() method as a array.
Passing & Accessing Command Line Arguments
Consider the below syntax of passing command-line arguments:
javac tester.java java tester arg1 arg2 arg3
Here we”ve compiled one java file namely tester.java and while running the tester class using java, we”re passing three arguments which are separated by space. We can pass any number of command line arguments to java program. The encapsulates these inputs into the args[] array. We can check the number of arguments passed using args.length. In case no command line argument is present, then this array is empty.
class Tester { public static void main(String[] args){ ... } }
We can pass Strings, integers and any other primitive value using command line arguments. Each argument passed is available in the array in the order of entry, starting from args[0].
Benefits of Command Line arguments
- Command line arguments allows to configure the application behavior by passing the arguments before start of the application. Batch processes are one of the example where command line arguments are heavily used to execute java commands with configuration parameters. This mechanism enables dynamic parameterization of Java programs through console inputs, enhancing versatility and interactivity.
- Command line arguments facilites user input retrieval and manipulation in case of console based applications
Example of Single Command Line Argument
In this example, we”re checking if exactly one argument is passed to represent name. In case, no arguments are passed or more than one argument is passed, we print the error message as invalid number of arguments passed. Otherwise, we”re printing the name with a salutation.
public class Tester { // args array represents the command line arguments passed public static void main(String[] args) { // if only one argument is passed if(args.length == 1) { String name = args[0]; System.out.println("Welcome " + name + "!"); }else { // otherwise print an error message System.out.println("Invalid Command line argument(s) passed."); } } }
Output
Let us compile and run the above program without any command line argument, this will produce the following result −
D:test>javac Tester.java D:test>java Tester Invalid Command line argument(s) passed.
Here, we”ve compiled the java code using javac command and then run using java command without any command line argument. Let”s run the java command again with required parameter.
D:test>java Tester Mahesh Welcome Mahesh!
Example of Multiple Command Line Arguments
In this example, we”re checking if exactly two arguments are passed to represent name and age. Age being a number, we”re parsing the argument using parseInt() method. In case, no arguments are passed or more than two arguments are passed, we print the error message as invalid number of arguments passed. Otherwise, we”re printing the name and age received.
public class Tester { // args array represents the command line arguments passed public static void main(String[] args) { // if two arguments are passed if(args.length == 2) { String name = args[0]; // parse the age as int int age = Integer.parseInt(args[1]); System.out.println("Name: " + name + ", age: " + age); }else { // otherwise print an error message System.out.println("Invalid Command line argument(s) passed."); } } }
Output
Let us compile and run the above program without any command line argument, this will produce the following result −
D:test>javac Tester.java D:test>java Tester Invalid Command line argument(s) passed.
Here, we”ve compiled the java code using javac command and then run using java command without any command line argument. Let”s run the java command again with required parameters.
D:test>java Tester Mahesh 40 Name: Mahesh, age: 40
Conclusion
Java command-line arguments are very useful to create parameterized java programs which can accept the parameters dynamically. Users have runtime control over the behavior of the program as arguments can be passed to the main() method. With command line arguments, we can manage program”s output, set setup parameters, and specify input files at runtime without any compile time dependencies.
We can pass command-line arguments in many ways to a java program. Various IDEs supports providing the arguments in their execution configurations. Also, they are easy to employ. When you run the code, it can be set in the program”s configuration file or supplied on the command line.