java -jar 使用--傳參無效

 

 

最近在做springboot 項目部署的時候,出現了一個很詭異的bug,在這裏和大家分享一下。 大家都知道springboot是打的jar包,然後上傳到服務器上,使用java -jar 來命令來啓動,並且可以指定參數 。比如 --server.port=9002 來指定端口號,這種指定方式的優先級是高於application.yml文件的。

我的項目中在application.yml中設置的端口號是 8080, 我在部署的時候使用如下命令:

nohup java -jar xxx.jar --server.port=9000 &

但是啓動之後,發現端口號還是8080,相當於--server.port根本沒有生效。 確實感覺很奇怪,後來找了大量資料,發現了罪魁禍首,原來還是自己寫代碼的時候馬虎了,啓動類寫成了

public static void main(String[] args){
    SpringApplication.run(XXX.class);
}

而正確的寫法是:

public static void main(String[] args){
    SpringApplication.run(XXX.class, args);
}

發現問題了麼,沒錯就是少了args, 也就是參數,所以我們設置的參數是無法傳入到程序中的,就導致了外邊設置的參數無效。

好了,如果你也遇到了同樣的情況希望可以幫助到你。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章