我想使用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文件应该以正常流程继续。
感谢任何帮助。
批处理文件不是可执行文件。因此,您需要运行cmd.exe并将批处理文件作为参数传递。
请参考这篇文章-它解决了同样的问题并提供了一个很好的解决方案-如何从我的Java应用程序运行批处理文件?。
您的代码需要指定使用哪个程序来执行.bat文件。通过以下修复程序开始缩小范围。
p = run.exec("cmd.exe /c " + cmds);
也可以尝试这个链接来获得以前在这里回答过的类似问题的类似代码。
当我运行这段代码时,我只得到命令提示。。bat文件没有运行。如何使用这段代码执行批处理文件? 提前致谢
问题内容: 在我的Java应用程序中,我想运行一个名为 的批处理文件 看来我什至无法执行我的批处理文件。我没主意了。 这就是我在Java中所拥有的: 以前,我有一个要运行的Python Sconscript文件,但由于该文件不起作用,我决定通过批处理文件调用该脚本,但该方法到目前为止尚未成功。 问题答案: 批处理文件不是可执行文件。他们需要一个应用程序来运行它们(即cmd)。 在UNIX上,脚本文
问题内容: 我想从Java程序执行批处理文件。 我正在使用以下命令。 但是问题是我想提供一个相对路径而不是绝对路径,以便我可以在任何组件上部署该Java项目。 项目的目录结构如下: 我想从“解析器”目录中的“ Main.java”文件中运行“ util”目录中的“ Server.bat”文件。 问题答案: 当Java运行时,您可以将Runtime.exec()与相对路径一起使用,相对方式是相对于当
在我的Java应用程序中,我想运行一个批处理文件,该批处理文件调用“” 似乎我甚至不能让我的批处理文件执行。我没主意了。 这是我用Java写的: 以前,我有一个我想运行的Python Sconscript文件,但由于它不起作用,我决定通过批处理文件调用脚本,但该方法尚未成功。
问题内容: 我正在尝试从Java可执行文件运行另一个目录中的批处理文件。我有以下代码: 结果是程序在运行该程序的根目录中打开一个cmd窗口,并且无法访问我提供的文件路径。 问题答案: 而不是,您需要使用方法签名: 但就我个人而言,我会改用,它稍微冗长一些,但比容易使用和调试。
我试图从我的Java可执行文件运行另一个目录中的批处理文件。我有以下代码: 结果是,程序在运行程序的根目录中打开了一个cmd窗口,无法访问我提供的文件路径。