当前位置: 首页 > 知识库问答 >
问题:

使用java程序运行批处理文件

阴凯歌
2023-03-14
try {                               
try {
    String[] command = {"cmd.exe", "/C", "Start", "D:\\test.bat"};
        Runtime r = Runtime.getRuntime();
        Process p = r.exec(command);
        p.waitFor();

    } catch (Exception e) {
        e.printStackTrace();
        JOptionPane.showMessageDialog(this, "Error" +"Execution!","Error",JOptionPane.ERROR_MESSAGE);
        }
    } catch (IOException ex) {
        Logger.getLogger(DBBackUp.class.getName()).log(Level.SEVERE, null, ex);
    }

当我运行这段代码时,我只得到命令提示。。bat文件没有运行。如何使用这段代码执行批处理文件?

提前致谢

共有3个答案

金昌胤
2023-03-14

你可以尝试这样的事情:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;


public class BatchExecuteService {

    public static void main(String[] args) {
        BatchExecuteService batchExecuteService = new BatchExecuteService();
        batchExecuteService.run();
    }

    public void run() {
        try {
            String cmds[] = {"D:\\test.bat"};
            Runtime runtime = Runtime.getRuntime();
            Process process = runtime.exec(cmds);
            process.getOutputStream().close();
            InputStream inputStream = process.getInputStream();
            InputStreamReader inputstreamreader = new InputStreamReader(inputStream);
            BufferedReader bufferedrReader = new BufferedReader(inputstreamreader);
            String strLine = "";
            while ((strLine = bufferedrReader.readLine()) != null) {
                System.out.println(strLine);
            }
        } catch (IOException ioException) {
            ioException.printStackTrace();
        }
    }
}
林运浩
2023-03-14

让你的“test.bat”像这样:

dir
pause

然后,您可以按如下方式执行此批处理文件:

try
{
 Runtime r = Runtime.getRuntime();
 Process p = r.exec("rundll32 url.dll,FileProtocolHandler " + "D:\\test.bat");
 p.waitFor();
}catch(Exception ex){ex.printStackTrace();}
黄磊
2023-03-14

考虑使用Apache Commons Exec。

 类似资料:
  • 问题内容: 在我的Java应用程序中,我想运行一个名为 的批处理文件 看来我什至无法执行我的批处理文件。我没主意了。 这就是我在Java中所拥有的: 以前,我有一个要运行的Python Sconscript文件,但由于该文件不起作用,我决定通过批处理文件调用该脚本,但该方法到目前为止尚未成功。 问题答案: 批处理文件不是可执行文件。他们需要一个应用程序来运行它们(即cmd)。 在UNIX上,脚本文

  • 我想使用java程序运行一个批处理文件,当我双击. bat文件时,它要求我输入“D”,然后在C驱动器中创建一些文件夹,以下是. bat文件的内容: 我的Java代码如下: 它没有给我任何错误,但它既没有要求我输入任何值,也没有创建任何文件夹。 我想知道在java代码中我需要做什么,这样它会要求我输入' D ',然后输入。bat文件应该以正常流程继续。 感谢任何帮助。

  • 在我的Java应用程序中,我想运行一个批处理文件,该批处理文件调用“” 似乎我甚至不能让我的批处理文件执行。我没主意了。 这是我用Java写的: 以前,我有一个我想运行的Python Sconscript文件,但由于它不起作用,我决定通过批处理文件调用脚本,但该方法尚未成功。

  • 从任务计划程序运行批处理文件不适用于. bat文件中的java命令。如果我手动运行. bat文件,它的工作良好。 这是我试图安排的简单. bat文件

  • 问题内容: 我正在尝试从Java可执行文件运行另一个目录中的批处理文件。我有以下代码: 结果是程序在运行该程序的根目录中打开一个cmd窗口,并且无法访问我提供的文件路径。 问题答案: 而不是,您需要使用方法签名: 但就我个人而言,我会改用,它稍微冗长一些,但比容易使用和调试。