zoukankan      html  css  js  c++  java
  • springboot项目启动 java -jar详解

    原文地址:https://blog.csdn.net/qq_28165595/article/details/90740834

    前言
    在日常开发中,我们启动springboot项目直接运行项目中的启动类就可以了。但是如果需要将jar包在linux服务器上部署,没有启动类又该怎么启动呢?肯定很多小伙伴会说,那不是很简单么,java -jar不就行了么?这里详细介绍下java -jar中一些常用命令参数配置。

    微服务启动中配置环境选择
    在微服务开发中,如果我们没有使用springcloud config来统一管理各个服务的配置,那么配置文件就由服务本身来进行维护。一个服务需要在开发,测试,生产环境部署。如果只有一个配置文件,在不同环境部署的时候去修改这个配置文件。这种方法可行,但是效率很低而且还很容易出错。所以我们一般会采用多个配置文件。在springboot中, 多环境配置的文件名需要满足 application-{profile}.properties的格式, 其中{profile}对应你的环境标识, 如下所示

    application-dev.properties 开发环境
    application-test.properties 测试环境
    application-prod.properties 生产环境
    至于具体哪个配置文件会被加载,需要在 application.properties文件中通过spring.profiles.active 属性来设置,其值对应配置文件中的{profile}值。 如spring.profiles.active = test 就会加载 application-test.properties配置文件内容。所以在java -jar的时候,可以指定配置文件来选择不同的环境配置。如下所示

    nohup java -jar myapp.jar --spring.profiles.active=test &
    这里需要注意的一点,有时候我们在开发测试的时候, 会在jar包的包内包外都配置application-*.properties文件,这时候启动默认是先采用包外的配置。

    端口,堆内存配置
    nohup java -Xms500m -Xmx500m -Xmn256m -Xss256k -server -XX:+HeapDumpOnOutOfMemoryError
    -jar myapp.jar --server.port=8080 -verbose:class &
    在上面的启动命令中

    -Xms500m -Xmx500m -Xmn256m -Xss256m 用来设置堆内存
    -server:服务器模式,在多个CPU时性能佳,启动慢但性能好,能合理管理内存
    在排查jar包冲突时,可以指定启动的-verbose:class  打印出启动的应用实际加载类的路径,来排查来源。
    -XX:+HeapDumpOnOutOfMemoryError:在堆溢出时保存快照
    --server.port=8080 指定端口
    指定输出位置
    nohup java -jar -Dlogging.file=/usr/logs/myjar.log myjar.jar &
    指定服务启动日志输出的文件。

    有的时候日志比较多,导致保存日志的文件比较大,而这些日志没有必要保留。

    nohup java -jar myjar.jar >/dev/null 2>&1 &
    >/dev/null 2>&1。这条命令其实分为两命令,一个是>/dev/null,另一个是2>&1。

    1. >/dev/null

    这条命令的作用是将标准输出1重定向到/dev/null中。/dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失,不会保存。那么执行了>/dev/null之后,标准输出就会不再存在,没有任何地方能够找到输出的内容。

    2. 2>&1

    这条命令用到了重定向绑定,采用&可以将两个输出绑定在一起。这条命令的作用是错误输出将和标准输出同用一个文件描述符,其实就是说将错误输出和标准输出都输出都同一个文件。linux在执行shell命令之前,就会确定好所有的输入输出位置,并且从左到右依次执行重定向的命令,所以>/dev/null 2>&1的作用就是让标准输出重定向到/dev/null中(丢弃标准输出),然后错误输出由于重用了标准输出的描述符,所以错误输出也被定向到了/dev/null中,错误输出同样也被丢弃了。

    总结
    上面简单介绍了java -jar启动中经常会用到的一些参数配置。都是些基础知识,简单记录下。

  • 相关阅读:
    CentOS上svn checkout时报错SSL handshake failed: SSL error: Key usage violation in certificate has been det
    SnmpTools配置
    Django下载文件
    Cacti的使用
    RRDtool 安装和使用
    SNMP 安装及使用
    Openstack CentOS6.5 ALL IN ONE 安装
    mysqladmin -u root password
    VS2013打包程序步骤
    python中使用rabbitmq消息中间件
  • 原文地址:https://www.cnblogs.com/eyesfree/p/14814387.html
Copyright © 2011-2022 走看看