我目前正在使用Gradle编写一个用Java 8编写的Spring Boot应用程序。 我正在寻找的是从命令行运行Jar时作为参数传递服务器端口。
例如:
java -jar myApplication.jar --port=8888
:这使用端口8888
java -jar myApplication.jar
:由于没有传递端口号作为参数,因此spring boot应用程序应该在默认端口号上运行(假设为8080
)任何人都可以帮我吗?
答案 0 :(得分:26)
从Spring boot documentation开始,命令行为:
java -Dserver.port=8888 -jar myApplication.jar
您还可以使用documentation。
中所述的Spring启动配置文件答案 1 :(得分:1)
原因始终在-D<key>=<value>
参数之前传递-jar
JVM参数,否则它将不接受您的参数,然后它将与默认值。例如:
在特定端口上执行jar的正确Java命令是:
java -Dserver.port=8888 -jar target/my-application-jar-path.jar
以上命令将在端口 8888 上但在命令
下运行JVMjava -jar target/my-application-jar-path.jar -Dserver.port=8888
将在端口 8080 上运行,它将在-jar
后忽略JVM参数。 spring-boot应用程序中的最佳实践是将server.port
设置为application.properties
文件为:
server.port=9090
或在具有特定 ENVIROMENT 的特定application-<ENV>.properties
文件上。