badfail@qq.com+java_读取错误输出流报Bad file descriptor

后台一直报这个错:

22:23:01,264 ERROR [STDERR] java.io.IOException: Bad file descriptor

22:23:01,264 ERROR [STDERR] at java.io.FileInputStream.readBytes(Native Method)

22:23:01,265 ERROR [STDERR] at java.io.FileInputStream.read(FileInputStream.java:220)

22:23:01,265 ERROR [STDERR] at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264)

22:23:01,265 ERROR [STDERR] at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306)

22:23:01,265 ERROR [STDERR] at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158)

22:23:01,265 ERROR [STDERR] at java.io.InputStreamReader.read(InputStreamReader.java:167)

22:23:01,265 ERROR [STDERR] at java.io.BufferedReader.fill(BufferedReader.java:136)

22:23:01,265 ERROR [STDERR] at java.io.BufferedReader.readLine(BufferedReader.java:299)

22:23:01,265 ERROR [STDERR] at java.io.BufferedReader.readLine(BufferedReader.java:362)

22:23:01,265 ERROR [STDERR] at com.hisun.cmf.utils.MkmRequestUtil$1.run(MkmRequestUtil.java:45)

源码是 Process process = Runtime.getRuntime().exec(cmd);

try {

final InputStream is_std = process.getInputStream();

final InputStream is_error = process.getErrorStream();

new Thread() {

@Override

public void run() {

BufferedReader br2 = new BufferedReader(new InputStreamReader(is_error));

try {

String line2 = null;

while ((line2 = br2.readLine()) != null) {

if (line2 != null) {

}

}

} catch (IOException e) {

e.printStackTrace();

} finally {

try {

is_error.close();

} catch (IOException e) {

e.printStackTrace();

}

}![图片描述][1]

}

}.start();

BufferedReader br1 = new BufferedReader(new InputStreamReader(is_std, "UTF-8"));

try {

String line1 = null;

while ((line1 = br1.readLine()) != null) {

if (line1 != null) {

result = result + line1;

}

}

} catch (IOException e) {

e.printStackTrace();

} finally {

try {

is_std.close();

} catch (IOException e) {

e.printStackTrace();

}

}

process.waitFor();

} catch (Exception e) {

e.printStackTrace();

} finally {

process.getErrorStream().close();

process.getInputStream().close();

process.getOutputStream().close();

process.destroy();

}

调用linux指令 然后启动一个线程读取错误流的时候报错 请各位大佬帮忙看下,这是什么原因。

f0883ba843ce1e4d0a41b847c4450050.png

上面是报错的代码行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值