/**
* 执行shell脚本命令
* @param file
*/
public static void doExec(String file)
{
try
{
Runtime.getRuntime().exec("bash " + file);
logger.info("bash " + file);
}
catch (IOException e)
{
logger.warn("Exec " + file + " IOException:", e);
}
}
/**
* 执行一个Shell脚本
*/
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);
}
logger.error("execute shell " + shellFile + " failed: "
+ errorDesc);
//zkf35483 新增关闭流操作
br.close();
}
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;
}
分享到:
相关推荐
总之,Java调用Shell脚本是一个有效的方法来在Java程序中实现复杂的Linux环境下的操作,这种技术尤其适用于需要进行系统级操作和自动化任务的场景。掌握这一技术可以帮助开发者更好地实现跨平台的功能,尤其是在开发...
在linux环境中,这三个用户都可以直接在任意目录下执行该shell脚本,可是在java代码中调用shell脚本时,报了如下4个错误: 1、sqlldr: command not found 2、sqlplus: command not found 3、0750: You may need to ...
在Java编程中,有时我们需要与操作系统进行交互,执行一些系统级别的任务,比如调用Shell脚本。这在处理自动化任务、远程服务器管理或系统集成时非常常见。在给定的资源中,我们可以看到如何在Java中实现这个功能,...
### Java调用Shell脚本详解 #### 一、前言 在实际开发过程中,经常会遇到需要结合Java程序与Shell脚本进行操作的情况。通过Java调用Shell脚本不仅可以实现复杂的功能,还可以提高程序的灵活性和扩展性。本文将详细...
详细的linux shell脚本启动java代码类。
java 执行linux命令源码,java调用shell脚本源码,java web发布war到tomcat,servlet文件上传,ajax文件上传。 java web 上传war包、停止、启动、发布tomcat。 命令修改成自己的目录即可使用。
在Java编程中,有时我们需要与操作系统进行交互,例如在Linux环境下执行shell脚本来完成特定的任务。本文将详细探讨如何在Java程序中调用Linux shell脚本,并解释相关的关键概念和步骤。 首先,调用shell脚本的基本...
在Java程序中调用Unix/Linux主机上的Shell命令,并返回相应执行结果。
在Android系统中,由于安全性和权限的限制,直接调用shell脚本并不像在Linux或Unix环境下那样简单。然而,对于非root用户来说,确实有一些方法可以实现对shell脚本的调用,尤其是在开发和调试过程中。下面我们将深入...
首先,Java调用shell脚本主要通过`Runtime`类或`ProcessBuilder`类来实现。`Runtime.getRuntime().exec()`方法允许我们执行系统命令,而`ProcessBuilder`提供了更灵活的命令构建和环境变量设置功能。下面是一个基本...
在Java编程中,有时我们需要与操作系统进行交互,执行一些系统级别的任务,比如自动化运维、文件管理等,这时就可能需要用到调用Shell脚本。本文将详细介绍如何在Java中完美封装shell脚本的调用方法,并提供相关的...
Java 远程调用Shell脚本客户端包是一个实用的工具,专为开发者设计,使得在Java应用程序中执行远程Shell命令变得简单而高效。这个包的主要功能是通过Java代码发起对远程服务器上的Shell脚本的调用,从而实现跨平台的...
总结来说,这个场景涉及到了Linux下的shell脚本编写,主要是使用`exp`命令导出Oracle数据库中的数据,并通过Java程序来调用这个脚本。这在日常的运维工作中非常常见,通过这种方式可以实现自动化数据备份,提高工作...
在Java编程中,有时我们需要与操作系统进行交互...总的来说,通过`Runtime`类,我们可以方便地在Java程序中执行Linux命令和shell脚本,实现客户端的多次调用。但同时需要注意异常处理和资源管理,以保证程序的健壮性。
Shell脚本主要用于Linux或Unix系统中的自动化任务执行,而Java是一种跨平台的编程语言,广泛应用于企业级应用、大数据处理等领域。当需要将这两者结合时,通常是为了在Shell脚本中调用Java程序,实现更复杂的系统...
在Windows环境下,`RunScript.java`可能会使用类似`"cmd /c start script.bat"`的命令来启动批处理脚本。而在Linux中,它可能会使用`"/bin/sh script.sh"`这样的命令。在执行这些命令时,可能还需要考虑脚本的路径和...
该工具是基于SSH2协议的实现,在使用它的过程中非常容易,只需要指定合法的用户名口令,或者授权认证文件,就可以创建到远程Linux主机的连接,在建立起来的会话中调用该Linux主机上的脚本文件,执行相关操作。
Java远程调用Shell脚本并获取输出信息 本文主要介绍了Java远程调用Shell脚本...本文介绍了Java远程调用Shell脚本并获取输出信息的方法,使用了Java的SSH客户端来连接远程Linux服务器,执行Shell脚本,并获取输出信息。
连接成功后,我们可以通过`Session.execCommand()`方法执行shell命令或者脚本。例如,我们可以将要运行的shell脚本路径作为命令传递,服务器会执行该脚本并返回输出。 3. **接收数据**: 执行命令后,我们需要...
总之,Java调用shell脚本向DataX传递参数,尤其是在where条件中包含特殊字符时,需要关注字符串转义、shell命令构建以及安全问题。同时,合理设计和使用配置文件能有效提高代码的灵活性和可维护性。