Java server.port属性在buildin spring启动项目后不工作
我正在进行SpringBoot项目,一切正常,现在我想构建并运行这个应用程序。 在application.properties文件中,我设置了属性Java server.port属性在buildin spring启动项目后不工作,java,spring,maven,tomcat,spring-boot,Java,Spring,Maven,Tomcat,Spring Boot,我正在进行SpringBoot项目,一切正常,现在我想构建并运行这个应用程序。 在application.properties文件中,我设置了属性server.port=8090 使用maven构建项目后,我运行以下命令 java-jarjarfilename.jar但是它说端口8080已经在使用中。 我尝试以下命令: java -jar -Dport=8090 jarfilename.jar 及 但我也收到了同样的消息,端口8080已经在使用中 我想知道为什么它需要端口号8080,而忽略我
server.port=8090
使用maven构建项目后,我运行以下命令
java-jarjarfilename.jar
但是它说端口8080
已经在使用中。
我尝试以下命令:
java -jar -Dport=8090 jarfilename.jar
及
但我也收到了同样的消息,端口8080
已经在使用中
我想知道为什么它需要端口号8080
,而忽略我在application.properties文件中设置的端口号8090
注意:(我正在使用tomcat嵌入式服务器)当我检查文件夹target/classes时。。application.properties我没有找到属性server.port=8090
谁能给我解释一下发生了什么事?
提前感谢。application.properties是否位于正确的位置? 说明来自: SpringApplication将从以下位置的application.properties文件加载属性,并将其添加到Spring环境中:
java-jar-Dserver.port=8090 jarfilename.jar
从命令行设置端口
提示,from:如果您想使用短期的
-Dport=8090
,您可以在应用程序属性文件中使用server.port=${port:8080}
。我遇到了同样的问题,在我的情况下,我没有将参数传递给SpringApplication
public static void main(String[] args) {
SpringApplication.run(MySpringConfiguration.class);
}
应该是
public static void main(String[] args) {
SpringApplication.run(MySpringConfiguration.class, args);
}
我知道这是一篇老文章,但我可能知道答案(可能会帮助其他人):有一个配置设置的层次结构。 applicaton.properties文件位于底部(OS env.variables、Java系统属性等都在上面),另一方面,终端参数位于顶部
因此,当服务器初始化时,它使用属性设置中的端口,该属性设置在层次结构阶梯中较高。尝试:“java-jar-Dserver.port=8090 jarfilename.jar”commandHi@SándorJuhos非常感谢,它工作得很好,但是你能解释一下为什么它会忽略application.properties文件中的属性server.port=8090吗?@Ali,你使用的是带嵌入式tomcat的springboot还是独立的tomcat<代码>服务器端口仅在嵌入式tomcat模式下工作。如果您使用的是独立的tomcat,那么它就不起作用。您必须在tomcat的
server.xml
中手动配置端口。您能确认吗?谢谢@harshavmb的timr,是的,我使用的是嵌入式tomcat,但我解决了这个问题,请注意:在PowerShell中“-Dserver.port=”参数不起作用,您可以使用“-server.port=”代替,但它应该位于jar文件的路径之后。使用CMD时,这两种方法都有效。
public static void main(String[] args) {
SpringApplication.run(MySpringConfiguration.class, args);
}