将批处理文件作为线程运行而不是进程

时间:2014-04-24 13:19:06

标签: java batch-file process resources

我被困在一个我需要说...无限的情况下,创建一个进程即一个批处理文件将给定的file.pdf转换为file.txt我面临的问题是,,,为了做到这一点所有文件,程序正在创建一个运行批处理文件的进程,等待它完成,创建另一个进程......等等,消耗资源如何保存我的资源?

String[] arg = { "cmd", "/C", "bat.exe", "-layout", arg0,
            arg1};
    try {


        ProcessBuilder builder = new ProcessBuilder(arg);
        builder.redirectErrorStream(true);
        Process p2 = builder.start();
        BufferedReader reader = new BufferedReader(new InputStreamReader(
                p2.getInputStream()));
        String line;
        while ((line = reader.readLine()) != null) {
            System.out.println(line);
        }
        p2.waitFor();

    } catch (IOException e) {
        e.printStackTrace();
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

其中arg0和arg1分别是我的pdf文件和目标文本文件

1 个答案:

答案 0 :(得分:0)

Apache Commons Exec免费提供。请查看tutorial取消阻止执行部分。