两点:
一定要起其他线程处理Process exec = Runtime.getRuntime().exec(cmd); 执行完返回的Process的输出流和输出流。否则会导致主线程卡住
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";

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

被折叠的 条评论
为什么被折叠?



