public static boolean execute(String shellFile)
{
//脚本文件为NULL或空值
if (null == shellFile || shellFile.equals(""))
{
logger.warn("ShellCommand shellFile is null.");
return false;
}
if (logger.isDebugEnabled())
{
logger.debug("bash " + shellFile);
}
try
{
Process process = Runtime.getRuntime().exec("bash " + shellFile);
int iretCode = process.waitFor();
try
{
if (iretCode != 0)
{
BufferedReader br = new BufferedReader(
new InputStreamReader(process.getErrorStream()));
StringBuilder errorDesc = new StringBuilder();
for (String str = br.readLine(); str != null; str = br
.readLine())
{
errorDesc.append(str);
}
//zkf35483 新增关闭流操作
br.close();
logger.error("execute shell " + shellFile + " failed: "
+ errorDesc);
}
else
{
return true;
}
}
catch (IOException e)
{
logger.error("IOException:", e);
}
finally
{
process.getErrorStream().close();
process.getInputStream().close();
process.getOutputStream().close();
}
}
catch (Exception e)
{
logger.error("Execute " + shellFile + " exception:", e);
}
return false;
}
分享到:
相关推荐
要利用`app_process`执行shell命令,我们需要创建一个自定义的Java类,并在该类中调用`Runtime.getRuntime().exec()`方法来执行shell命令。以下是一个简单的示例: ```java public class ShellExecutor { public ...
在实际开发过程中,我们经常需要在Java程序中调用Shell脚本或Python脚本来执行一些特定的任务,比如系统管理任务、数据分析等。Java通过`java.lang.Runtime`类提供了非常方便的方式来启动新的进程,并与之通信。然而...
在Java编程中,有时我们需要与操作系统进行交互,执行一些系统级别的任务,比如运行Linux命令或shell脚本。`Runtime`类是Java标准库提供的一种机制,允许我们在程序中执行操作系统命令。本文将深入探讨如何使用`...
在Java编程中,有时我们需要与操作系统进行交互,执行系统级别的命令,例如在控制台执行CMD命令或者通过SSH连接远程Linux服务器执行shell命令。这在自动化脚本、系统管理或者远程监控等场景中非常常见。本篇文章将...
Java执行CMD命令及MongoDB脚本是开发过程中常见的任务,特别是在集成系统或者自动化运维场景下。下面将详细讲解这两个主题。 一、Java执行CMD命令 在Java中,我们可以使用Runtime类或ProcessBuilder类来执行操作...
在实际开发过程中,经常会遇到需要结合Java程序与Shell脚本进行操作的情况。通过Java调用Shell脚本不仅可以实现复杂的功能,还可以提高程序的灵活性和扩展性。本文将详细介绍如何在Java中调用Shell脚本,并给出一个...
2. **调用Shell脚本**:通过Java的`Runtime.getRuntime().exec()`方法来执行Shell命令或脚本。 下面是一个具体的Java类实现示例,用于调用Shell脚本并记录执行日志: ```java import java.io.*; import java.text....
一旦Shell脚本开始执行,我们可以通过`Process`对象的输入流读取脚本的输出: ```java InputStreamReader ir = new InputStreamReader(process.getInputStream()); LineNumberReader input = new LineNumberReader...
Java调用Shell脚本执行DataX任务是一种常见的数据迁移或同步操作。DataX是阿里巴巴开源的数据同步工具,它支持多种数据库之间的数据迁移。在实际应用中,我们可能需要根据特定的业务逻辑,如where条件,来定制数据...
在Java编程中,有时我们需要执行本地的脚本文件,并且可能需要传递多个参数给这些脚本。这在处理自动化任务、系统集成或者调用外部工具时非常常见。本篇文章将详细探讨如何在Java中实现这一功能,同时也会涉及到源码...
在Android平台上,有时候开发者需要超越普通应用程序的权限范围,例如执行系统级别的操作,这就涉及到给APP授权和执行Shell命令。Android系统默认是以安全为优先,不允许应用无限制地执行shell命令,但通过获取Root...
- 在Java中,你可以使用`Runtime.getRuntime().exec()`或`ProcessBuilder`来执行shell命令。例如,创建一个SQL脚本文件(如`script.sql`),然后通过以下代码调用SQL*Plus执行该脚本: ```java String command =...
此外,Java 1.5以后引入的`java.lang.Process`接口提供了更多与子进程交互的方法,如获取进程ID、关闭输入/输出流、等待进程结束等。这些功能使得Java程序可以更好地控制和监控外部命令的执行。 总结来说,Java通过...
别忘了关闭输入输出流,防止内存泄漏。 5. **异常处理和错误检查** 通过`Process.exitValue()`检查命令执行是否成功。正常退出时,返回值为0;非零表示有错误。同时,注意捕获并处理可能出现的异常。 6. **安全...
总之,Java调用shell脚本向DataX传递参数,尤其是在where条件中包含特殊字符时,需要关注字符串转义、shell命令构建以及安全问题。同时,合理设计和使用配置文件能有效提高代码的灵活性和可维护性。
在Java编程中,有时我们需要在程序中执行操作系统级别的任务,比如运行Linux的Shell脚本。这时,我们可以利用Java内置的`Runtime`类的`execute`方法来实现这一目标。本文将详细讲解如何在Java中使用`Runtime.execute...
Java代码执行shell命令的实现是指在Java程序中调用操作系统的shell命令,实现与操作系统交互的功能。下面将详细介绍Java代码执行shell命令的实现方法。 环境准备 在执行shell命令之前,需要获取JVM底层操作系统的...
- 在博文链接中(由于实际链接无法访问,这里只能做一般性描述),可能详细介绍了如何在Java中编写代码来执行SH脚本,包括如何处理输出流、错误流,以及如何正确传递参数。 6. **工具应用** - 这种技术常用于自动...
2. **处理标准输入/输出和错误流**:执行外部命令时,需要注意处理进程的标准输出、标准错误和标准输入。不正确处理可能导致程序阻塞或数据丢失。 3. **跨平台命令执行**:在Java中实现跨平台命令执行,需要考虑...