I currently working on an Spring Boot application written in Java 8 using Gradle. What I am looking for is to pass as an argument the server port when running the Jar from the command line.
For example:
java -jar myApplication.jar --port=8888
: This runs my Spring boot application using port 8888
java -jar myApplication.jar
: Since no port number is passed as argument, the spring boot application should run on a default port number (let's say 8080
) Can anyone help me with this ?
The fastest and easiest way to customize Spring Boot is by overriding the values of the default properties. For the server port, the property we want to change is server. port. By default, the embedded server starts on port 8080.
From Spring boot documentation, the command line is :
java -Dserver.port=8888 -jar myApplication.jar
You can also use Spring boot configuration file as described in the documentation.
Caution Always pass the -D<key>=<value>
JVM parameters before the -jar
arguments otherwise it wouldn't accept your parameters and then it will run with default values. e.g:
Correct java command to execute the jar on a particular port is:
java -Dserver.port=8888 -jar target/my-application-jar-path.jar
The above command will run the JVM on the port 8888 but the below command
java -jar target/my-application-jar-path.jar -Dserver.port=8888
Will run on the port 8080, it will ignore the JVM parameters after -jar
Best practice in spring-boot application is to set the server.port
into the application.properties
file as:
server.port=9090
Or on the particular application-<ENV>.properties
file with specific ENVIROMENT.
java -jar app.jar --server.port=9000
(taken from 2.1. Accessing Command Line Properties in the Spring documents)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With