繁体   English   中英

如何使用Java运行批处理文件

[英]how to run a batch file using java

我想使用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文件应以正常流程继续进行。

任何帮助表示赞赏。

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

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

对于先前在此处回答过的类似问题,也可以尝试使用此链接获取类似的代码

批处理文件不是可执行文件。 因此,您将需要运行cmd.exe并将批处理文件作为参数传递。

请参考这篇文章-它解决了相同的问题并提供了一个好的解决方案- 如何从Java应用程序运行批处理文件?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM