运行 jar 时配置服务器端口

我目前正在使用Gradle开发一个用Java 8编写的Spring Boot应用程序。我正在寻找的是,在从命令行运行Jar时将服务器端口作为参数传递。

例如:

  • java -jar myApplication.jar --port=8888:这将使用端口运行我的Spring启动应用程序8888
  • java -jar myApplication.jar:由于没有端口号作为参数传递,因此 spring 引导应用程序应在默认端口号上运行(假设8080)

任何人都可以帮我这个吗?


答案 1

Spring引导文档中,命令行是:

java -Dserver.port=8888 -jar myApplication.jar

您还可以按照文档中的说明使用 Spring 引导配置文件。


答案 2

谨慎始终在参数之前传递 JVM 参数,否则它将不接受您的参数,然后它将使用默认值运行。例如:-D<key>=<value>-jar

在特定端口上执行jar的正确java命令是:

java -Dserver.port=8888 -jar target/my-application-jar-path.jar

上述命令将在端口 8888 上运行 JVM,但以下命令

java -jar target/my-application-jar-path.jar -Dserver.port=8888

将在端口 8080 上运行,它将忽略 -jar 后面的 JVM 参数

在 spring-boot 应用程序中,最佳做法是将server.portapplication.properties

server.port=9090

或者在具有特定环境的特定文件上。application-<ENV>.properties


推荐