Java Tutorial

Java Control Statements

Object Oriented Programming

Java Built-in Classes

Java File Handling

Java Error & Exceptions

Java Multithreading

Java Synchronization

Java Networking

Java Collections

Java List Interface

Java Queue Interface

Java Map Interface

Java Set Interface

Java Data Structures

Java Collections Algorithms

Java Miscellaneous

Advanced Java

Java APIs & Frameworks

Java Useful Resources

Java - Command Line Arguments



In Java, 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 java program is executed. command-line arguments, provided during program execution, are captured in the main() method as a string 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 Java Virtual Machine (JVM) 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.

Advertisements