Close

How to run Java main class and pass application arguments in Maven?

[Last Updated: Feb 6, 2019]

Maven 

Command line syntax for running Java main class and pass application arguments in Maven:

mvn compile exec:java -Dexec.mainClass="com.logicbig.example.MyMainclass" -Dexec.args="myArg1 myArg2"

Example

pom.xml

<project .....>

<modelVersion>4.0.0</modelVersion>
<groupId>com.logicbig.example</groupId>
<artifactId>mvn-exec-java-example</artifactId>
<version>1.0-SNAPSHOT</version>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
public class MyMainClass {
  public static void main(String[] args) {
      Arrays.stream(args).forEach(System.out::println);
  }
}
mvn -q clean compile exec:java -Dexec.mainClass="com.logicbig.example.MyMainClass" -Dexec.args="myArg1 myArg2"

Output

d:\example-projects\maven\mvn-exec-java-example>mvn -q clean compile exec:java -Dexec.mainClass="com.logicbig.example.MyMainClass" -Dexec.args="myArg1 myArg2"
myArg1
myArg2

Example Project

Dependencies and Technologies Used:

  • JDK 1.8
  • Maven 3.3.9

mvn-exec-java-example Select All Download
  • mvn-exec-java-example
    • src
      • main
        • java
          • com
            • logicbig
              • example
                • MyMainClass.java

    See Also