The command line argument is the argument which is passed at the time of running a Java application. Java can take any number of arguments from the command-line, You could see that there will be String args[] used in the declaration of the main() method, which tells us that Java can takes all the argument which is passed in the command-line as String, but the question here is that how to pass the command-line argument to Java.
Usually we will be running a Java program like below
java <<class name>>
Command line argument will be passed as an additional parameter while running
java <<class name>> <<parameter1>> <<parameter2>>
If we wish to pass a String array then we need to include the array as a simple string beside the class name, you can optionally add quotes as well but it is not required as Java takes all inputs as String only. Each parameter has to separated with a space. Both below inputs which is given below is valid
java Test one two tree java Test "one" "two" "three"
The String arguments passed will be stored in the String args[] of the main() method, now args[] has three elements. These elements can be accessed in the normal way accessing a Java array.
Printing the command-line arguments
public class StringArrayExample { public static void main(String args[]) { for (int i =0;i<args.length;i++) { System.out.println("Parameter "+(i+1)+" : "+args[i]); } } }
Upon execution we will be getting the below output
Parameter 1 : one Parameter 2 : two Parameter 3 : tree
Note : The program displays each parameter in separate line. This is because the space character separates arguments. In order to have all of them to be considered as a single argument then we need to enclose them with a quotation like below
java StringArrayExample "one two three"
Then the output will be
Parameter 1 : one two three
Parsing Numeric Command-Line Arguments
Java program takes all the command line arguments as String by default but this will not help in all the cases. Suppose if your Java application needs to support numeric argument, then we need to parse the argument into integer.
public class Integer_Parse { public static void main(String args[]) { int value1,value2; if (args.length > 0) { try { value1 = Integer.parseInt(args[0]); value2 = Integer.parseInt(args[1]); System.out.println("Sum of parameters is : "+(value1+value2)); } catch (NumberFormatException e) { System.err.println("Argument passed is not integer"); System.exit(1); } } } }
Output
java Integer_Parse 12 13 Sum of parameters is : 25
parseInt() method will throw NumberFormatException when the argument passed is not a valid Number type (float,int,double…)
Leave a Reply