【问题标题】:how to run a batch file using java如何使用java运行批处理文件
【发布时间】:2015-03-31 15:29:47
【问题描述】:

我想使用 java 程序运行一个批处理文件,当我双击 .bat 文件时,它要求我输入“D”,然后它在 C 驱动器中创建了一些文件夹,下面是 .bat 的内容文件:

xcopy "data" "C:\data" /S
xcopy "rapid" "C:\rapid" /S
subst x: /D
subst x: C:\

我的Java代码如下:

try {
            //C:\Desktop\Speed\view_R36_WD_Release\RAPID\switchToLive.Bat
            String cmds[] = {"C:\\Users\\608521747\\Desktop\\Speed\\view_R36_WD_Release\\RAPID\\switchToDev.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();
        } 

它没有给我任何错误,但它既不要求我输入任何值也不创建任何文件夹。

我想知道我需要在 java 代码中做什么,以便它会要求我输入“D”,然后 .bat 文件应该继续正常流程。

感谢任何帮助。

【问题讨论】:

    标签: java dos


    【解决方案1】:

    您的代码需要指定使用哪个程序来执行您的 .bat 文件。 通过以下修复开始缩小范围。

    p = run.exec("cmd.exe /c " + cmds);
    

    也可以尝试this link for similar code 来解决之前在此处回答的类似问题。

    【讨论】:

      【解决方案2】:

      批处理文件不是可执行文件。所以你需要运行 cmd.exe 并将批处理文件作为参数传递。

      请参考这篇文章 - 它解决了同样的问题并提供了一个很好的解决方案 - How do I run a batch file from my Java Application?

      【讨论】:

        猜你喜欢
        • 2011-01-23
        • 2018-10-03
        • 1970-01-01
        • 1970-01-01
        • 2023-03-14
        • 1970-01-01
        • 2016-07-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多