`
JenniferAmanda
  • 浏览: 147188 次
  • 性别: Icon_minigender_2
  • 来自: 西安
社区版块
存档分类
最新评论

ProcessBuilder执行批处理,错误流处理

 
阅读更多
public static boolean executeBat(String filePath) {
if (filePath == null || "".equals(filePath.trim())
|| !new File(filePath).exists()) {
return false;
}
BufferedReader bufferedReader = null;
ProcessBuilder processBuilder = null;
Process process = null;
InputStream fis = null;
try {
processBuilder = new ProcessBuilder(filePath);
File file = new File(filePath);
String fileName = file.getName();
String dir = filePath.substring(0, filePath.indexOf(fileName));
processBuilder.redirectErrorStream(true);
processBuilder.directory(new File(dir));
process = processBuilder.start();
fis = process.getInputStream();
bufferedReader = new BufferedReader(new InputStreamReader(fis));
String line = null;
while ((line = bufferedReader.readLine()) != null) {
System.out.println(line);
}

} catch (IOException e) {
Log.getlogger().error("执行批处理文件失败,批处理路径:" + filePath);
Log.exception(e);
return false;
} finally {
if (fis != null) {
try {
fis.close();
} catch (IOException e) {
Log.getlogger().error("执行批处理文件,流关闭失败,批处理路径:" + filePath);
Log.exception(e);
return false;
}
}
if (bufferedReader != null) {
try {
bufferedReader.close();
} catch (IOException e) {
Log.getlogger().error("执行批处理文件,流关闭失败,批处理路径:" + filePath);
Log.exception(e);
return false;
}
}
if (process != null) {
process.destroy();
}
if (processBuilder != null) {
processBuilder = null;
}
}
return true;
}
分享到:
评论

相关推荐

    批处理文件启动Oracle服务

    在Java开发中,如果你需要在应用程序启动时确保Oracle服务已经运行,或者需要在程序内部操作Oracle服务,可以使用Java的Runtime类或者ProcessBuilder类来执行批处理文件或直接执行操作系统命令。 总的来说,批处理...

    java调用bat批处理与sh脚本

    - **权限问题**:执行外部命令可能需要相应的文件执行权限,确保Java进程有权限访问并执行批处理文件或Shell脚本。 - **错误输出**:调用`Process.getErrorStream()`和`Process.getInputStream()`可以获取命令执行的...

    BatchExec:使用java在远程服务器上执行批处理文件

    - 错误处理:确保捕获并处理可能抛出的异常,如网络错误、权限问题等。 - 输出流监控:远程执行的命令可能会有输出,通过Process对象的`getInputStream()`和`getErrorStream()`可以获取标准输出和错误输出,以便进行...

    java调用批处理

    Spring Batch是Spring框架的一个模块,提供了全面的批处理功能,包括事务管理、错误处理、分割和并行执行等。它基于JSR 352,但提供了更多的企业级特性,适用于复杂的应用场景。 5. **使用线程池进行批量处理**: ...

    Java如何调用可执行文件和批处理命令.doc

    这个工具允许我们将BAT或CMD文件编译成可执行文件,然后通过Java调用exe文件来间接执行批处理命令。例如: ```bash quickbfc mybatch.bat mybatch.exe # 将批处理文件mybatch.bat编译为mybatch.exe ``` 之后,我们...

    java远程下载与调用批处理脚本

    4. 使用Runtime或ProcessBuilder创建一个新的进程来执行批处理脚本。 5. 如果需要,可以通过标准输入/输出/错误流与批处理脚本进行通信,获取脚本执行的结果。 6. 在执行完毕后,确保清理所有资源,如关闭流和终止...

    编程语言java批处理.pdf

    总体来说,文档内容强调了Java程序如何与操作系统的命令行进行交互,以及如何通过执行批处理文件来扩展Java程序的功能。这一知识点不仅适用于Windows平台,也适用于Unix/Linux等其他操作系统,并且对于系统自动化、...

    解决Java调用BAT批处理不弹出cmd窗口的方法分析

    总结来说,Java调用BAT批处理文件不弹出CMD窗口的关键在于使用"start /b"组合,并结合异常处理和进程状态检查,确保批处理文件的正确执行。如果需要进一步的交互,可以使用ProcessBuilder类来更精确地控制命令行操作...

    Java 执行本地脚本携带多参数

    此外,如果需要处理复杂的参数传递或脚本逻辑,可以考虑使用第三方库,如Apache Commons Exec,它提供了更丰富的功能和更好的错误处理机制。 总之,Java通过`Runtime`或`ProcessBuilder`提供了一种方式来执行本地...

    java_bat.rar_DEMO

    4. **错误处理和输入/输出流** - 执行外部程序时,可能需要处理输入流、输出流和错误流。`Process`对象提供这些流,例如: ```java BufferedReader errReader = new BufferedReader(new InputStreamReader(p....

    java远程调用批处理文件代码归总

    一种常见的方法是通过Java的`Runtime`类或`ProcessBuilder`类来启动远程系统的shell命令,从而执行批处理文件。例如,你可以创建一个`Runtime.getRuntime().exec()`调用来运行一个包含批处理命令的shell脚本。 接...

    Runtime 执行bat

    当我们需要在Java程序中执行系统命令,比如运行一个批处理脚本(.bat文件)时,`Runtime`类或者其扩展类`ProcessBuilder`就派上了用场。下面我们将深入探讨如何使用`Runtime`执行bat脚本,并了解相关知识点。 1. **...

    java 调用windows的一些可执行文件

    在Java编程环境中,有时我们需要与操作系统进行交互,例如调用Windows系统的可执行文件或批处理文件来执行特定任务。...在具体应用中,应考虑安全性、错误处理和资源管理等方面,确保程序的稳定性和可靠性。

    使用java调用windows WIN脚本

    // 调用Execute 方法执行批处理脚本 JInvokable executeMethod = services.getJComInterface().get("ExecMethod"); String result = (String) executeMethod.invoke("WinMgmt", "RunScript", "myScript.vbs"); ...

    Linux下Java中调用可执行程序

    4. **错误处理**: 使用`waitFor()`方法等待进程结束,并通过`exitValue()`检查进程的退出状态码。如果退出状态码非零,可能表示程序执行时出现了错误,这里输出"Error"。 5. **跨平台兼容性**: 为了确保程序在...

    Java 运行 bat 文件

    在这里,`cmd /c start`是Windows系统的命令,用于执行批处理文件,`C:\\path\\to\\your.bat`替换为你的bat文件的实际路径。 2. **ProcessBuilder类**: ProcessBuilder是另一种更灵活的方式来执行外部进程,它...

    java程序调用bat文件,执行oracel数据库备份

    Java作为一种流行的编程语言,能够与其他系统进行交互,包括执行批处理(bat)文件来自动化数据库操作。本文将详细探讨如何通过Java程序调用bat文件来执行Oracle数据库的备份。 首先,我们需要理解Java调用外部程序...

    monitorobj.zip

    在本案例中,作者使用Java来编写批处理程序,这可能是因为Java提供了更丰富的功能和跨平台兼容性,相比纯批处理脚本,能够实现更复杂的逻辑和错误处理。 CMD窗口是Windows操作系统中的命令行界面,用户可以通过它...

    java调用bat文件

    在Java编程中,有时我们需要与操作系统进行交互,执行一些系统级别的任务,比如运行批处理(BAT)文件。本文将深入探讨如何...在实际应用中,应根据具体需求进行适当的封装和错误处理,确保程序的稳定性和可维护性。

Global site tag (gtag.js) - Google Analytics