加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 处理IllegalThreadStateException

发布时间:2020-12-15 00:40:38 所属栏目:Java 来源:网络整理
导读:import java.io.*;class Sysexecute{ public static void main(String args[]) throws IOException,InterruptedException,IllegalThreadStateException { Runtime rt= Runtime.getRuntime(); Process p=rt.exec("ls"); System.out.println(p.exitValue()); }
import java.io.*;
class Sysexecute
{
    public static void main(String args[]) throws IOException,InterruptedException,IllegalThreadStateException
    {
        Runtime rt= Runtime.getRuntime();
        Process p=rt.exec("ls");
        System.out.println(p.exitValue());
    }
}

我正在学习如何在java中执行系统命令,并发生此错误.我尝试使用抛出来否定它但没有用.请解释原因和解决方案

actual error:-
Exception in thread "main" java.lang.IllegalThreadStateException: process hasn't exited
    at java.lang.UNIXProcess.exitValue(UNIXProcess.java:270)
    at Sysexecute.main(Sysexecute.java:8)

解决方法

在尝试获取退出值之前调用 Process#waitFor().这将阻止当前线程,直到生成的进程终止.如果你不这样做,Process#exitValue()会抛出

IllegalThreadStateException – if the subprocess represented by this
Process object has not yet terminated

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读