记录一个用Runtime.getRuntime()执行java-jar的代码,解决不更新镜像更新容器内的jar包方法

文章讲述了在Java中使用Runtime.exec()执行命令时,必须在其他线程中处理Process的输出流和错误流,以避免阻塞主线程。同时,指出了读取输入流可能导致内存泄漏的问题,并提供了一个简单的读取优化方案,每500次读取后重置字节数组。另外,文章还提到了主方法中的Processexec执行和下载jar包的流程。

两点:

  1. 一定要起其他线程处理Process exec = Runtime.getRuntime().exec(cmd); 执行完返回的Process的输出流和输出流。否则会导致主线程卡住

  1. Process的inputStream流,因为一直有访问根本不会为空,readInputStream方法里有写

主方法

    public static Boolean runJar() {
        try {
            //通过接口获取是否需要更新jar包
            //拿不到或者报错,都是走之前的jar包
            int status = 0;
            //拿到,判断下状态是否需要更新
            if (0 == status) {
                //需要更新,解析出URL
                String downLodePath = "downLodePath";
                String savePath = "savePath";
                String fileName = "fileName";
                //
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值