springboot学习笔记(十三) springboot项目打jar 包并后台守护部署

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34246546/article/details/86711084

spring boot 版本:

<parent>  
        <groupId>org.springframework.boot</groupId>  
        <artifactId>spring-boot-starter-parent</artifactId>  
        <version>2.0.3.RELEASE</version>  
        <relativePath />
    </parent>  

注意一个小问题:spring boot 2.0以上:配置文件参数:servlet.context-path 变成了:server.servlet.context-path

第一步:

   在pom文件加入:

        <plugins>  
            <plugin>  
                <groupId>org.springframework.boot</groupId>  
                <artifactId>spring-boot-maven-plugin</artifactId>  
                <configuration>  
                    <!--fork :  如果没有该项配置,肯定devtools不会起作用,即应用不会restart -->  
                    <fork>true</fork>  
                </configuration>  
            </plugin>  
            
            
        </plugins> 

右键项目:

结果发现build失败,一看错误信息,说我的jdk有问题,解决方法(指定jdk):

eclipse  -- windows -- preferences - java--installed jres

指定jdk

然后项目 bulid path,指定刚刚添加的jdk 

然后run  maven install   成功打jar包!

在自己电脑上(windows) 执行 jara -jar   xxxx.jar 启动没问题

问题:

1.关掉窗口,项目也关闭了

2.接收ibm mq消息中文乱码

解决乱码:转换成utf-8编码

xmlString = new String(bs,"UTF-8");

守护进程:

windows:  

linux:     nohup java -jar   xxx.jar  >mylog.log  2>&1 &

其中mylog.log记录控制台信息

补充: 2>&1

1. 
& 1 更准确的说是文件描述符 1, 而1 一般代表的就是STDOUT_FILENO,实际上这个操作就是一个dup2(2)调用.他标准输出到all_result ,然后复制标准输出到文件描述符2(STDERR_FILENO),其后果就是文件描述符1和2指向同一个文件表项,也可以说错误的输出被合并了.其中0表示键盘输入 1表示屏幕输出 2表示错误输出.把标准出错重定向到标准输出,然后扔到/DEV/NULL下面去。通俗的说,就是把所有标准输出和标准出错都扔到垃圾桶里面。
2.
command >out.file 2>&1 &
command >out.file是将command的输出重定向到out.file文件,即输出内容不打印到屏幕上,而是输出到out.file文件中。2>&1 是将标准出错重定向到标准输出,这里的标准输出已经重定向到了out.file文件,即将标准出错也输出到out.file文件中。最后一个& , 是让该命令在后台执行
 

猜你喜欢

转载自blog.csdn.net/qq_34246546/article/details/86711084