Java命令行启动jar包更改默认端口以及配置文件的几种方式

  1. java -jar xxx.jar --server.port=8081

默认如果jar包没有启动文件,可以采用这种方式进行启动

  1. java -jar xxx.jar --spring.profiles.active=dev
  1. 这种方式,你打的jar包里得有application-dev.properties或application-dev.yml这类资源文件
  2. 使用 "--spring.profiles.active" 参数,搭配@Profile注解,可以实现不同环境下(开发、测试、生产)配置参数的切换


  3. 根据文档描述,我们除application.properties外,还可以根据命名约定(命名格式:application-{profile}.properties)来配置,如果active赋予的参数没有与使用该命名约定格式文件相匹配的话,app则会默认从名为application-default.properties 的配置文件加载配置。
如:`spring.profiles.active=hello-world,sender,dev` 有三个参数,其中 dev 正好匹配下面配置中的application-dev.properties 配置文件,所以app启动时,项目会先从application-dev.properties加载配置,再从application.properties配置文件加载配置,如果有重复的配置,则会以application.properties的配置为准。
(配置文件加载顺序详见官方文档:24. Externalized Configuration)



如此,我们就不用为了不同的运行环境而去更改大量的环境配置了(此处,dev、pro、test分别为:开发、生产、测试环境配置)

  1. java -jar xxx.jar --spring.config.location=/data/java/application.properties 或 java -jar xxx.jar --spring.config.location=/data/java/application.yml

指定加载某个资源文件,也可以使用相对路径

  1. java -jar xxx.jar --spring.config.location=/data/java/application.properties -Dserver.port=8081 -Dserver.address=127.0.0.1

扩展,你加载的指定配置文件里的有server.port和server.address配置项

例如:

我工程里有mapper/xxx.xml数据库CRUD接口映射文件,我编译后的目录文件其实是在target/classes/mapper/xxx.xml

当我使用指定资源配置文件启动的时候,由于我指定的配置文件里配置的 mapper-locations: classpath:mapper/*. xml是这样的加载路径,调试运行时没问题,但是在编译后的目标目录里启动时,就会因为路径不对而导致启动失败。

如果我这样启

java -jar xxx.jar --spring.config.location=./classes/application.yml

下面一定会报mybatis-plus相关的一些错误,例如找不到映射文件之类的

那,如果我这样启

java -jar xxx.jar --spring.config.location=./classes/application.yml -Dmybatis-plus mapper-locations=./classes/mapper

就能正常加载资源配置文件并启动成功,其他配置项的加载道理也一样。

Java命令行启动jar包更改默认端口以及配置文件的几种方式的更多相关文章

  1. Linux java 命令行编译 jar包

    Java 命令行编译成class,然后在打包成jar文件. 编译成class javac -classpath $CLASS_PATH -d class ./src/Hello.java 可以通过ja ...

  2. linux下java命令行引用jar包

     一般情况下: 如果java 文件和jar 包在同一目录 poi-3.0-alpha3-20061212.jar testTwo.java 编译: javac -cp poi-3.0-alpha3-2 ...

  3. java命令行引入jar包

    编译: E:/>javac -cp e:/jdom.jar test1.java 执行: E:/>java -classpath e:/jdom.jar; test1

  4. 使用命令行生成jar包

    测试用类 public class Hello { public static void main(String[] args) { System.out.println("hello wo ...

  5. Java环境变量配置以及作用、JDK与JRE区别以及命令行引入jar包

    在配置环境变量中: 设置JAVA_HOME: 一是为了方便引用,比如,JDK安装在C:\jdk1.6.0目录里,则设置JAVA_HOME为该目录路径, 那么以后要使用这个路径的时候, 只需输入%JAV ...

  6. java基础19 导包和“命令行”打jar包

    1.导包 1.1.包 java中的包就相当于Windows文件夹        编译格式:javac -d . 类名.java 1.2.包的作用 1.解决了类名重复冲突的问题    2.便于软件版本的 ...

  7. windows下命令行打jar包方法

     注意:系统必须装了java并且配置好了java环境变量. 事先必须编译好需要打jar的class.(eclipse一般在bin,maven构建的在target/classes) 进入cmd,输入ja ...

  8. java命令行运行jar里的main类

    一般运行包含manifest的jar包,可以使用 java -jar <jar-file-name>.jar 如果jar里没有 manifest,则可以使用 java -cp foo.ja ...

  9. Java 命令行启动时指定配置文件目录

    java -jar -Xbootclasspath/a:/home/tms/conf    /home/tms/bin/S17-tms.jar 先指定配置文件目录: 再指定jar包路径: 运行clas ...

随机推荐

  1. B. Nauuo and Circle 解析(思維、DP)

    Codeforce 1172 B. Nauuo and Circle 解析(思維.DP) 今天我們來看看CF1172B 題目連結 題目 略,請直接看原題 前言 第一個該觀察的事情一直想不到,看了解答也 ...

  2. Optimal binary search trees

    问题 该问题的实际应用 Suppose that we are designing a program to translate text from English to French. For ea ...

  3. python如何连接数据库操作?

    1.首先导入模块(提前pip安装)  import pymysql ; 2.打开数据库连接   db = pymysql.connect("localhost", "us ...

  4. Java学习的第二十三天

    1.今天学习了用log4j记录日志 综合实例 2.不知道日志什么时候用到 3.明天学习12章

  5. Amdocs收购OPENET:关于5G应用落地的思考

    今年8月,全球通讯和媒体领导者之一Amdocs收购了Openet.在VoltDB,听到这个消息,我们感到非常高兴和自豪!在过去的7年里,我们一直是Openet解决方案的基础数据平台. 尽管许多供应商仍 ...

  6. 自定义控件-只有横线的文本输入框(TxtLine)

    需求:在实际开发中,由于TextBox控件的背景色样式不美观,且TextBox不能直接设置背景颜色,因此需要使用自定义控件以实现如下效果 实现代码 public partial class TxtLi ...

  7. 正式班D25

    2020.11.09星期一 正式班D25 目录 13.7 LVM 13.7.1 lvm简介 13.7.2 lvm基本使用 13.7.3 在线动态扩容 13.7.4 在线动态缩容与删除 13.7.5 快 ...

  8. [C#.NET 拾遗补漏]11:最基础的线程知识

    线程的知识太多,知识点有深有浅,往深的研究会涉及操作系统.CUP.内存,往浅了说就是一些语法.没有一定的知识积累,很难把线程的知识写得全面,当然我也没有这个能力.所以想到一个点写一个点,尽量总结一些有 ...

  9. 剑指Offer-Python(6-10)

    6.旋转数组的最小数字 class Solution: def minNumberInRotateArray(self, rotateArray): l = len(rotateArray) if l ...

  10. MSSQL sql numeric转字符串显示不补0

    由于工作中需要把numeric转字符串显示,但是有一个问题会自动补0. DECLARE @f NUMERIC(18,4)=1.1200, @str VARCHAR(50) SELECT CAST(@f ...