Configure server port when running jar
Asked Answered
T

3

36

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 ?

Toodleoo answered 17/1, 2017 at 10:13 Comment(0)
S
69

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.

Stichter answered 17/1, 2017 at 10:24 Comment(0)
T
9

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.

Tnt answered 1/1, 2020 at 11:36 Comment(0)
F
3

For SpringBoot use:

 java -jar app.jar --server.port=9000

(taken from 2.1. Accessing Command Line Properties in the Spring documents)

France answered 17/10, 2021 at 21:4 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.