精华内容
下载资源
问答
  • jar包启动
    千次阅读
    2022-04-24 21:17:36

    一般情况下运行jar包,当前是可运行的jar包,直接命令

    java -jar common.jar
    

    按下ctrl+C ,关闭当前ssh或者直接关闭窗口,当前程序都会退出。

    我们在命令的结尾添加 “&” ,&表示该程序可以在后台执行

    java -jar common.jar &
    

    但是在当窗口关闭时,程序也会中止运行

    nohup java -jar common.jar &
    

    命令最前面个nohub关键字,这样程序就会不挂断运行命令, 当ssh终端关闭时,程序仍然在运行,当前程序的日志会被写入到当前目录的nohup.out文件中

    我们可以改下输入的日志文件

    nohup java -jar common.jar > log.out &
    

    当前程序的日志会被写入到当前目录的log.out文件中

    如果不想写日志,可以将日志重定向到 /dev/null 中,/dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失

    nohup java -jar common.jar > /dev/null &
    

    标准输出就会不再存在,没有任何地方能够找到输出的内容

    nohup java -jar common-api.jar >/dev/null 2>log.error &
    

    只输出错误信息到日志文件,标准输出不写入日志文件,直接丢弃

    nohup java -jar common-api.jar >/dev/null 2>&1 &
    

    标准输出(stdout)重定向到/dev/null中(丢弃标准输出),然后标准错误输出(stderror)由于重用了标准输出的描述符,所以标准错误输出也被定向到了/dev/null中,错误输出同样也被丢弃了

    nohup java -jar common-api.jar >log.out 2>&1 &
    

    标准输出重定向到log.out中,然后错误输出由于重用了标准输出的描述符,所以错误输出也被定向到了log.out中

    但是不管那种情况,如果日志输出,日志文件都会增加很快,造成单个文件很大。所以需要拆分文件

    1:定时作业,每天将日志文件复制一份,然后将当前的日志文件清空。

    参考:https://www.csdn.net/tags/NtTagg3sNTIwNDUtYmxvZwO0O0OO0O0O.html

    更多相关内容
  • SpringBoot项目运行jar包启动

    千次阅读 2022-03-29 08:22:39
    SpringBoot项目在开发中,方便快捷,有一点原因就是SpringBoot项目可以打jar包运行:把jar包直接扔服务器上,然后运行jar包就能访问项目接口了。下面介绍SpringBoot项目打jar包运行的步骤流程: 一、我们所熟悉的是...

    人工智能,零基础入门!http://www.captainbed.net/inner

    SpringBoot项目在开发中,方便快捷,有一点原因就是SpringBoot项目可以打jar包运行:把jar包直接扔服务器上,然后运行jar包就能访问项目接口了。下面介绍SpringBoot项目打jar包运行的步骤流程:

    一、我们所熟悉的是在开发环境下,直接用开发工具来运行那个启动类,然后就能启动这个项目:

    开发环境下启动项目

    二、 SpringBoot项目打jar包方法:

    【1】在cmd界面中,进入项目的本地存储地址

    cmd命令下进入项目地址

    【2】运行maven的打包命令,mvn clean package -Ptest -Dmaven.test.skip=true

    maven打jar包命令

    【3】打包成功,

    maven命令打包成功

    【4】在项目的“target”目录下找到这个jar包

    jar包所在位置

    【5】 把jar包放到服务器的特点位置,【下面以放到本地为例,就是在自己电脑上操作】

    把jar包放到服务器上

    【6】在cmd命令窗口下执行运行jar包的命令:java -jar E:/user-0.0.1.jar

    这个语句可以启动项目,但是日志会打在控制台上,我们要收集日志,修改一下,在后面加上指定日志文件,优化后的命令如下:java -jar E:/user-0.0.1.jar > E:/user.log &

    运行jar包启动项目

    【7】要关闭项目就直接把窗口关闭就可以了

    展开全文
  • SpringBoot-Jar包启动流程

    千次阅读 2021-04-20 20:19:16
    Spring Boot Jar包启动流程 启动流程概览 首先,我们通过java -jar命令启动jar包,此时调用Launcher$AppClassLoader类加载器加载,此时涉及了MANIFEST.MF中Main-Class对应的属性 然后构建Spring Boot加载器,...

    Spring Boot Jar包启动流程

    启动流程概览

    1. 首先,我们通过java -jar命令启动jar包,此时调用Launcher$AppClassLoader类加载器加载,此时涉及了MANIFEST.MF中Main-Class对应的属性

    2. 然后构建Spring Boot加载器,通过调用LaunchedURLClassLoader类加载器加载jar包中/BOOT-INF/classes/和/BOOT-INF/lib/*.jar文件

    3. 基于反射调用应用程序的启动方法,此时涉及了MANIFEST.MF中的Start-Class对应的属性

      image-20210409203550480

    Jar包结构

    首先我们来看下jar包的结构:

    spring-boot的jar包结构

    • 其中BOOT-INF就是我们自己写的应用的Class,包括:
      • classes:我们在spring boot项目中实现的业务对象
      • lib:存放的就是spring boot项目中的maven依赖,就是一个个的jar包
    • META-INF:
      • maven:包含了基本的maven配置文件
      • MANIFEST.MF:在spring boot的jar包中,这个文件是不能缺少的,否则就无法正常启动
    • org.springframework.boot.loader是来自于spring-boot-loader.jar包的文件,这里为什么不把这个jar包放到lib目录下,而是将它的文件拷贝出来单独放在一个文件夹下呢?这个留待后面解答

    MANIFEST.MF文件

    首先我们看看文件的内容:

    image-20210409161456613

    该文件中最重要的就是Main-Class和Start-Class这两个属性对应的启动类。

    Start-Class是我们真正要启动的类,该文件存储在BOOT-INF/classes目录下。

    从这里我们可以解答刚开始的那个问题:为什么将spring-boot-loader.jar文件的内容单独拷贝出来;这是因为我们在MANIFEST.MF中配置了Main-Class这个属性,那么当jar包启动的时候,就必须能够找到这个类,如果是在lib下的话,则启动时无法加载到这个类,所以这里将这些文件直接拷贝出来丢到jar包里面,让JarLuncher在启动jar包时可以直接启动。

    我们来看看这个JarLauncher在哪里:

    image-20210409162350356

    Jar中不同类对应的类加载器

    image-20210409164403391

    spring boot加载器能直接加载BOOT-INF/*下的jar包和类吗?

    jdk自己实现的协议无法加载jar包中的jar包,我们通过如下程序测试下:

    	@Test
    	public void test() throws IOException, ClassNotFoundException {
            // 这里的地址替换为自己本地jar包的位置运行即可,spring-boot的jar包基本都会包含这个spring-beans的jar包
    		URL nested_url = new URL("jar:file:///D:/spring_project/myblog/target/demo-0.0.1-SNAPSHOT.jar!/BOOT-INF/lib/spring-beans-5.2.7.RELEASE.jar");
            // 这里没有加载嵌套的jar包,只加载了我们自己打包的文件
    		URL url = new URL("file:///D:/spring_project/myblog/target/demo-0.0.1-SNAPSHOT.jar");
            
    		URLClassLoader loader = new URLClassLoader(new URL[]{nested_url, url}, null);
    		Class<?> aClass = loader.loadClass("org.springframework.boot.loader.JarLauncher");
    		System.out.println(aClass);
            // 由于无法加载jar中jar所以这里会报错!具体情况请看下图
    		loader.loadClass("org.springframework.beans.BeanUtils");
    	}
    

    image-20210409192101407

    那么Spring Boot到底如何解决这个问题呢?

    首先,我们来看看通过URL协议我们是如何加载这些文件的。对于每种协议(包括file、ftp、http、jar等),jdk都提供了对应的Handler实现类,如图所示:

    image-20210409193708744

    既然通过这些Handler无法读取jar里面的jar文件,那么spring boot的开发者就另辟蹊径,替换掉了读取jar的Handler。首先来看看Java中URL包含协议的请求流程:

    image-20210409194357228

    java的URL类中,会根据协议的名称进行包名的拼接,然后选择对应的Handler,我们可以在URL源码中看到这一点:

    image-20210409195321577

    覆盖jar中的Handler有三种方法:

    1. 指定URL HandlerFactory
    2. 修改默认匹配包名
    3. 采用默认包名

    我们可以设置URLStreamHandlerFactory来替换Handler,但是这个URLStreamHandlerFactory只能被替换一次。

    image-20210409195456002

    正常情况下,这是没问题的,但是我们使用tomcat启动的时候就会报错,因为tomcat已经设置过URLStreamHandlerFactory一次,所以spring boot如果再次设置的话还是会报错。但是spring boot的还是有自己的办法解决这个问题,我们看看它是如何做的。

    此时我们又要回到MANIFEST.MF文件,看看这个Main-Class对应的org.springframework.boot.loader.JarLauncher的main启动方法:

    image-20210409200544649

    image-20210409200614953

    image-20210409200632036

    最终其实我们可以发现,spring-boot通过System.getProperty方法设定了默认包名的路径!

    我们可以在刚才失败的方法上面添加这个方法,看是否能成功。此时还要修改以下jar协议,要在jar的后面加上"!/",那么新的测试类如下:

    	@Test
    	public void test() throws IOException, ClassNotFoundException {
            
    		JarFile.registerUrlProtocolHandler();
    
    		// 加载jar中jar
    		URL nested_url = new URL("jar:file:///D:/spring_project/myblog/target/demo-0.0.1-SNAPSHOT.jar!/BOOT-INF/lib/spring-beans-5.2.7.RELEASE.jar!/");
    		URL url = new URL("file:///D:/spring_project/myblog/target/demo-0.0.1-SNAPSHOT.jar");
    		URLClassLoader loader = new URLClassLoader(new URL[]{nested_url, url}, null);
    		Class<?> aClass = loader.loadClass("org.springframework.boot.loader.JarLauncher");
    		System.out.println(aClass);
    		loader.loadClass("org.springframework.beans.BeanUtils");
    	}
    

    此时运行就不会报错了!

    我们可以调试,看看不调用JarFile.registerUrlProtocolHandler方法与调用方法对应的Handler

    image-20210409202712685

    执行JarFile.registerUrlProtocolHandler方法后:

    image-20210409202800042

    可以看到两者的区别,他们对应的handler不同,一个是java底层的,一个是spring-boot-loader自定义的。

    此时我们就了解了为什么spring能加载jar中jar了!

    继续spring的jar包启动原理!

    基于反射调用Start-Class

    接下来就要讲第三步通过反射找到Start-Class并调用。

    image-20210409205358754

    这里最终没搞好调试的环境,所以直接点进源码看了:

    image-20210409212705763

    image-20210409213156358

    image-20210409213311590

    image-20210409213428976

    image-20210409213522535

    调用到这里就会执行我们启动类的方法。

    接下来我们看看启动方法调用链:

    image-20210409214645157

    参考

    鲁班大叔

    展开全文
  • 项目jar包启动的命令

    千次阅读 2019-08-21 10:40:11
    项目jar包启动的命令 当我们在linux系统里某个路径下创建了许多个jar包的文件夹后,我们可以通过 java -jar 命令脚本可以快速的启动我们的jar包以及实现全部启动及全部结束jar进程。 1.在linux系统中jar包存放位置 /...

    项目jar包启动的命令

    当我们在linux系统里某个路径下创建了许多个jar包的文件夹后,我们可以通过 java -jar 命令脚本可以快速的启动我们的jar包以及实现全部启动及全部结束jar进程。

    1.在linux系统中jar包存放位置

    /opt/services/providers路径下是各个jar包存放的文件夹,同时将service.sh文件放入在该路径下,通过启动命令:
    ./service.sh start channeldemand 即可启动 YL-B-Channel-Demand-Provider.jar 包
    channeldemand是 YL-B-Channel-Demand-Provider.jar在service.sh中配置的别名

    如果需要启动该目录下的所有jar包,通过命令即可启动所有jar包:
    ./service.sh start all
    在这里插入图片描述

    2.service.sh中启动jar包具体的配置

    只需要更改1.程序代码数组:每个jar包起别名 2.程序名称数组:具体每个jar包具体的名称 3.jar包数组:具体的jar包 4.jar包路径数组:jar包所在的路径地址。5.PROJECTDIR属性:具体的jar包文件夹所在路径,/opt/services/providers/KaTeX parse error: Expected '}', got 'EOF' at end of input: {PATHS[i]}。
    修改这5个地方即可实现jar包配置。

    #!/bin/bash
    #####################################################Environment Setting#######################################################
    
    #程序代码数组
    APPS=(channelweb channelcorp channeldemand channelresume channeluser omsweb omscode omscorp omsdemand omsuser omszull oss publicweb search)
    
    #程序名称数组
    
    NAMES=(YL-B-Channel-WEB YL-B-Channel-Corp-Provider YL-B-Channel-Demand-Provider YL-B-Channel-Resume-Provider YL-B-Channel-User-Provider YL-B-BOS-WEB YL-B-Code-Provider YL-B-Corp-Provider YL-B-Demand-Provider YL-B-User-Provider YL-B-Zull YL-B-OSS-Provider YL-B-Public-WEB YL-B-Search-Provider)
    
    #jar包数组
    
    JARS=(YL-B-Channel-WEB.jar YL-B-Channel-Corp-Provider.jar YL-B-Channel-Demand-Provider.jar YL-B-Channel-Resume-Provider.jar YL-B-Channel-User-Provider.jar YL-B-BOS-WEB.jar YL-B-Code-Provider.jar YL-B-Corp-Provider.jar YL-B-Demand-Provider.jar YL-B-User-Provider.jar YL-B-Zull.jar YL-B-OSS-Provider.jar YL-B-Public-WEB.jar YL-B-Search-Provider.jar)
    
    #jar包路径数组
    
    PATHS=(BM-B-Channel-WEB BM-B-Channel-Corp-Provider BM-B-Channel-Demand-Provider BM-B-Channel-Resume-Provider BM-B-Channel-User-Provider BM-B-BOS-WEB BM-B-Code-Provider BM-B-Corp-Provider BM-B-Demand-Provider BM-B-User-Provider BM-B-Zull BM-B-OSS BM-B-Public-WEB BM-B-Search-Provider)
    
    start(){
    local APPNAME=
    local NAME=
    local CLASSNAME=
    local PROJECTDIR=
    local command="sh service.sh start"
    local cmd2="$1"
    local cmd2ok=0
    local cnt=0
    local okcnt=0
    local PATH_LOG=
    #local C_PID="0"
    #for i in `seq 0 22`
    echo "---------------------------开始启动服务..."
    for(( i=0;i<${#APPS[@]};i++))
    do
    APPNAME=${APPS[$i]}
    NAME=${NAMES[$i]}
    CLASSNAME=${JARS[$i]}
    PROJECTDIR=/opt/services/providers/${PATHS[$i]}
    PATH_LOG=/opt/logs/$NAME
    if [ "$cmd2" == "all" ] || [ "$cmd2" == "$APPNAME" ]; then
    cmd2ok=1
    C_PID="0"
    cnt=0
    #ps -ef | grep "$CLASSNAME" | awk '{print $2}' | while read pid
    PID=`ps -ef |grep $(echo $CLASSNAME |awk -F/ '{print $NF}') | grep -v grep | awk '{print $2}'`	
    #do 
    #C_PID=$(ps --no-heading $pid | wc -l)
    #if [ "$C_PID" == "1" ]; then
    if [ -n "$PID" ]
    then
    echo "$APPNAME---$NAME:己经运行,PID=$PID"
    #okcnt=$(($okcnt+1))
    else
    cd $PROJECTDIR
    rm -f $PROJECTDIR/$nohup.out
    command="nohup java -jar
    					-XX:MetaspaceSize=256m \
    					-XX:MaxMetaspaceSize=256m \
    					-Xms512m \
    					-Xmx512m \
    					-Xmn256m \
    					-Xss256k \
    					-XX:SurvivorRatio=8 \
    					-XX:+UseConcMarkSweepGC \
    					$CLASSNAME"
    exec $command >> $PROJECTDIR/nohup.out 2>&1 &
    #ps -ef | grep "$CLASSNAME" | awk '{print $2}' | while read pid
    #do
    # C_PID=$(ps --no-heading $pid | wc -l)
    #done
    PID=`ps -ef |grep $(echo $CLASSNAME |awk -F/ '{print $NF}') | grep -v grep | awk '{print $2}'`	
    cnt=0
    #while (("$C_PID" == "0"))
    while [ -z "$PID" ]
    do
    if (($cnt==30))
    then
    echo "$APPNAME---$NAME:$cnt秒内未启动,请检查!"
    break
    fi
    cnt=$(($cnt+1))
    sleep 1s
    #ps -ef | grep "$CLASSNAME" | awk '{print $2}' | while read pid
    #do
    # C_PID=$(ps --no-heading $pid | wc -l)
    #done
    PID=`ps -ef |grep $(echo $CLASSNAME |awk -F/ '{print $NF}') | grep -v grep | awk '{print $2}'`	
    done
    okcnt=$(($okcnt+1))
    echo "$APPNAME---$NAME:己经成功启动,PID=$PID"
    #出借模块和总装模块启动较慢
    if [ "$APPNAME" == "deal" ] ;
    then
    echo "$APPNAME---$NAME:启动中..."
    sleep 30s
    fi	
    if [ "$APPNAME" == "dispatch" ] ;
    then
    echo "$APPNAME---$NAME:启动中..."
    sleep 10s
    fi
    fi 
    #done	
    fi
    done
    if (($cmd2ok==0))
    then
    echo "command2: all|channelweb|channelcorp|channeldemand|channelresume|channeluser|omsweb|omscode|omscorp|omsdemand|omsuser|omszull" 
    else
    echo "---------------------------本次启动:$okcnt个服务"
    fi
    }
    
    stop(){ 
    local APPNAME=
    local CLASSNAME=
    local PROJECTDIR=
    local command="sh service.sh stop"
    local cmd2="$1"
    local cmd2ok=0
    #local C_PID="0"
    local okcnt=0
    echo "---------------------------开始停止服务..."
    for(( i=0;i<${#APPS[@]};i++))
    do
    APPNAME=${APPS[$i]}
    NAME=${NAMES[$i]}
    CLASSNAME=${JARS[$i]}
    PROJECTDIR=/opt/services/providers/${PATHS[$i]}
    if [ "$cmd2" == "all" ] || [ "$cmd2" == "$APPNAME" ]; then
    cmd2ok=1
    #ps -ef | grep "$CLASSNAME" | awk '{print $2}' | while read PID 
    PID=`ps -ef |grep $(echo $CLASSNAME |awk -F/ '{print $NF}') | grep -v grep | awk '{print $2}'`	
    #do 
    #C_PID=$(ps --no-heading $PID | wc -l)
    #if [ "$C_PID" == "1" ]; then
    if [ -n "$PID" ]
    then
    echo "$NAME:PID=$PID准备结束"
    kill $PID
    #C_PID=$(ps --no-heading $PID | wc -l)
    #while (("$C_PID" == "1"))
    PID=`ps -ef |grep $(echo $CLASSNAME |awk -F/ '{print $NF}') | grep -v grep | awk '{print $2}'`
    while [ -n "$PID" ]
    do
    sleep 1s
    #C_PID=$(ps --no-heading $PID | wc -l)
    PID=`ps -ef |grep $(echo $CLASSNAME |awk -F/ '{print $NF}') | grep -v grep | awk '{print $2}'`
    done
    echo "$NAME:成功结束"
    okcnt=$(($okcnt+1))
    else
    echo "$NAME:未运行"
    fi 
    #done 
    fi
    done
    if (($cmd2ok==0))
    then
    echo "command2: all|channelweb|channelcorp|channeldemand|channelresume|channeluser|omsweb|omscode|omscorp|omsdemand|omsuser|omszull" 
    else
    echo "---------------------------本次共停止:$okcnt个服务" 
    fi
    }
    
    case "$1" in 
    start) 
    start "$2"
    exit 1
    ;; 
    stop) 
    stop "$2"
    ;; 
    restart) 
    stop "$2"
    start "$2"
    ;; 
    *) 
    echo "command1: start|stop|restart" 
    exit 1 
    ;; 
    esac
    
    
    3. 通过 nohup java -jar jar名 & 启动jar包

    进入到jar包所在的文件夹下通过
    tail -fn 200 nohup.out 可以查看相关jar包的启动日志。

    java -jar -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -Xms512m -Xmx512m -Xmn256m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC YL-B-Channel-Demand-Provider.jar &
    
    展开全文
  • 手动推jar包及查看jar包启动情况

    千次阅读 2021-06-30 23:44:09
    启动jar包? 在相应的文件夹中找到刚刚上传的jar包: tmp 为存储临时文件的文件夹,包含系统和用户创建的临时文件。当系统重新启动时,这个目录下的文件都将被删除。 复制文件到相应位置 找到新复制的...
  • jar包同级目录下的config目录下的application.properties jar包同级目录下的application.properties classpath下的config目录下的application.properties classpath下的application.properties 若不想通过上面的...
  • linux部署jar包启动脚本

    千次阅读 2022-03-23 15:10:38
    新建一个start.sh文件,写入如下命令(以jar包名为 Oa.jar为例): ps -ef | grep Oa | grep -v grep | awk '{print $2}' | xargs kill -9 nohup java -jar Oa.jar >/dev/null 2>&1 & sleep 10s ...
  • jar 包启动命令

    万次阅读 2019-04-15 11:29:57
    1、java -jar xxxxx.jar  // 当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 2、java -jar xxxxx.jar &   //当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行。 3...
  • linux服务器上jar包启动及关闭方式

    千次阅读 多人点赞 2020-04-17 16:50:42
    随着微服务兴起,springboot也用得越来越多,用过springboot的都知道springboot项目默认是打包成jar包的,执行jar包就可以同时启动其内置的... 以上就是jar包启动和关闭的方法,来源于日常总结,不一定很全,欢迎补充。
  • SpringBoot可执行jar包启动原理

    千次阅读 2019-12-17 11:09:25
    在使用spring-boot-maven-plugin插件执行mvn package命令构建可执行jar文件(Fat JAR)后用“java -jar”命令就可以直接运行应用程序。 <plugin> <groupId>org.springframework.boot</groupId> ...
  • SpringBoot Jar包启动原理? SpringBoot Jar包目录结构? JarLauncher的运行原理?
  • 终于搞懂了SpringBoot jar包启动的原理

    千次阅读 2020-09-04 15:47:04
    SpringBoot生成的jar包 Spring Boot的可执行jar包又称作“fat jar”,是包含所有三方依赖的jar。它与传统jar包最大的不同是包含了一个lib目录和内嵌了web容器。 可执行jar包的目录结构 通过maven命令打包后,会有2个...
  • 通用jar包启动脚本

    千次阅读 2019-04-23 10:33:34
    通用jar包启动脚本 使用方法: 把本脚本和jar包放置在同一目录,并保证该目录下只有一个jar包。jar包的输出文件名为“nohup.当前目录名" 运行jar包: 脚本名后跟start|stop|restart|status即可 脚本内容: #!/...
  • jar 包启动时,读取配置文件优先顺序

    千次阅读 2021-06-18 10:47:52
    1.1 springboot启动会扫描一下位置的application.properties或者application.yml作为默认的配置文件 工程根目录:./config/ 工程根目录:./ classpath:/config/ classpath:/ 加载的优先级顺序是从上向下加载,并且...
  • springboot jar包启动修改端口

    千次阅读 2021-01-13 15:14:29
    java -Dspring.profiles.active=dev -Dserver.port=8080 -jar test.jar java -jar test.jar --spring.profiles.active=dev --server.port=8080
  • windows后台运行jar包-jar 包启动

    千次阅读 2019-07-29 14:00:47
    javaw -jar test.jar
  • springboot项目打成了jar方式启动,引入的xml是外部配置文件,修改注解 @ImportResource
  • 运用springboot开发的项目一般部署都是打jar包进行部署,启动命令也很简单: java -jar xxx.jar 如果我需要在启动时指定配置文件是开发版还是线上版,可以如下操作,比如: java -jar xxx.jar --spring.profiles....
  • 启动参数加上编码方式即可 java -Dfile.encoding=UTF-8 -jar app.jar --server.port=9090
  • 在往上找了好长时间也没解决问题,笔者突然灵机一动,因为之前pom文件中添加了tomcat-embed-jasper依赖,改写了SpringBoot内嵌的Tomcat,这时就不能使用jar包启动了,而应该打成war包。所以笔者将pom文件的打包方式...
  • jar包启动读不到配置文件

    千次阅读 2020-05-12 13:36:16
    打包后,cmd直接使用全路径执行jar包启动命令 java -jar D:\jar-prod\front-end-machine\front-end-machine-server-0.0.1-SNAPSHOT.jar,会报读取不到配置文件错误 jar包读取配置文件是从执行java -jar命令的目录...
  • SpringBoot项目在开发中,方便快捷,有一点原因就是SpringBoot项目可以打jar包运行:把jar包直接扔服务器上,然后运行jar包就能访问项目接口了。下面介绍SpringBoot项目打jar包运行的步骤流程: 一、我们所熟悉的是...
  • jar包启动中的JVM参数设置

    千次阅读 2019-11-12 19:50:05
    1.nohup nohup: 不挂断的运行,注意并没有后台运行的功能....可以让jar包一直后台运行 缺省的情况下会默认将信息输出到nohup.out文件中 2.-server 启动server版的jvm 3.JVM的内存分配 -Xms: 分配堆...
  • 2.打成jar包,通过java -jar运行,通过log打印的日志出现中文乱码,System.out.print("")输出正常。 最终定位到logback.xml配置文件: 修改前: <include resource="org/springframework/boot/logging/...
  • ## 10秒入门 springboot jar包启动及JVM参数设置 java -Xms512m -Xmx1024m -jar test.jar
  • java jar 包启动程序指定代理

    千次阅读 2019-05-14 11:22:00
    1.代码:java -Dhttp.proxyHost=ip -Dhttp.proxyPort=port -Dhttps.proxyHost=ip -Dhttps.proxyPort=1port -jar demo2.1.0.0.jar & 转载于:...
  • springboot jar包启动项目,jvm参数设置

    千次阅读 2019-10-08 22:49:28
    spring启动脚本 java -jar -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xms1024m -Xmx1024m -Xmn256m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC newframe-1.0.0.jar jvm参数的含义 -...
  • jar包启动日志显示乱码解决

    千次阅读 2018-08-03 03:36:00
    背景:jar包启动,今天java开发过来找,说jar包启动日志是乱码。排错思路:1、xshell 窗口确定是utf-8支持中文的模式2、linux系统编码是utf-8cat /etc/sysconfig/i18n 3、jar包本身可能没有指定utf-8格式jar包启动...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 476,858
精华内容 190,743
关键字:

jar包启动