`
junge8618
  • 浏览: 121000 次
  • 性别: Icon_minigender_1
  • 来自: 邵阳
社区版块
存档分类
最新评论

linux下用java调用shell脚本

阅读更多
   /**
     * 执行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调用Shell脚本是一个有效的方法来在Java程序中实现复杂的Linux环境下的操作,这种技术尤其适用于需要进行系统级操作和自动化任务的场景。掌握这一技术可以帮助开发者更好地实现跨平台的功能,尤其是在开发...

    java调用shell脚本执行sqlldr与存储过程

    在linux环境中,这三个用户都可以直接在任意目录下执行该shell脚本,可是在java代码中调用shell脚本时,报了如下4个错误: 1、sqlldr: command not found 2、sqlplus: command not found 3、0750: You may need to ...

    java调用shell脚本

    在Java编程中,有时我们需要与操作系统进行交互,执行一些系统级别的任务,比如调用Shell脚本。这在处理自动化任务、远程服务器管理或系统集成时非常常见。在给定的资源中,我们可以看到如何在Java中实现这个功能,...

    java调用Shell脚本.doc

    ### Java调用Shell脚本详解 #### 一、前言 在实际开发过程中,经常会遇到需要结合Java程序与Shell脚本进行操作的情况。通过Java调用Shell脚本不仅可以实现复杂的功能,还可以提高程序的灵活性和扩展性。本文将详细...

    linux shell脚本启动java类

    详细的linux shell脚本启动java代码类。

    java执行linux命令,java调用linux脚本文件,java启动停止发布tomcat,servlet ajax文件上传

    java 执行linux命令源码,java调用shell脚本源码,java web发布war到tomcat,servlet文件上传,ajax文件上传。 java web 上传war包、停止、启动、发布tomcat。 命令修改成自己的目录即可使用。

    Java调用linux shell脚本的方法

    在Java编程中,有时我们需要与操作系统进行交互,例如在Linux环境下执行shell脚本来完成特定的任务。本文将详细探讨如何在Java程序中调用Linux shell脚本,并解释相关的关键概念和步骤。 首先,调用shell脚本的基本...

    Java调用Shell脚本代码

    在Java程序中调用Unix/Linux主机上的Shell命令,并返回相应执行结果。

    android系统中调用shell脚本

    在Android系统中,由于安全性和权限的限制,直接调用shell脚本并不像在Linux或Unix环境下那样简单。然而,对于非root用户来说,确实有一些方法可以实现对shell脚本的调用,尤其是在开发和调试过程中。下面我们将深入...

    Java调用shell脚本

    首先,Java调用shell脚本主要通过`Runtime`类或`ProcessBuilder`类来实现。`Runtime.getRuntime().exec()`方法允许我们执行系统命令,而`ProcessBuilder`提供了更灵活的命令构建和环境变量设置功能。下面是一个基本...

    java调用shell脚本完美封装

    在Java编程中,有时我们需要与操作系统进行交互,执行一些系统级别的任务,比如自动化运维、文件管理等,这时就可能需要用到调用Shell脚本。本文将详细介绍如何在Java中完美封装shell脚本的调用方法,并提供相关的...

    java 远程调用Shell脚本客户端包

    Java 远程调用Shell脚本客户端包是一个实用的工具,专为开发者设计,使得在Java应用程序中执行远程Shell命令变得简单而高效。这个包的主要功能是通过Java代码发起对远程服务器上的Shell脚本的调用,从而实现跨平台的...

    linux下shell脚本实现数据的导出

    总结来说,这个场景涉及到了Linux下的shell脚本编写,主要是使用`exp`命令导出Oracle数据库中的数据,并通过Java程序来调用这个脚本。这在日常的运维工作中非常常见,通过这种方式可以实现自动化数据备份,提高工作...

    使用runtime实现linux命令行或shell脚本多次调用

    在Java编程中,有时我们需要与操作系统进行交互...总的来说,通过`Runtime`类,我们可以方便地在Java程序中执行Linux命令和shell脚本,实现客户端的多次调用。但同时需要注意异常处理和资源管理,以保证程序的健壮性。

    shell 脚本调用Java类

    Shell脚本主要用于Linux或Unix系统中的自动化任务执行,而Java是一种跨平台的编程语言,广泛应用于企业级应用、大数据处理等领域。当需要将这两者结合时,通常是为了在Shell脚本中调用Java程序,实现更复杂的系统...

    java在win下启动bat和在linux下启动shell脚本

    在Windows环境下,`RunScript.java`可能会使用类似`"cmd /c start script.bat"`的命令来启动批处理脚本。而在Linux中,它可能会使用`"/bin/sh script.sh"`这样的命令。在执行这些命令时,可能还需要考虑脚本的路径和...

    Java实现windows下远程调用shell脚本

    该工具是基于SSH2协议的实现,在使用它的过程中非常容易,只需要指定合法的用户名口令,或者授权认证文件,就可以创建到远程Linux主机的连接,在建立起来的会话中调用该Linux主机上的脚本文件,执行相关操作。

    Java远程调用Shell脚本并获取输出信息【推荐】

    Java远程调用Shell脚本并获取输出信息 本文主要介绍了Java远程调用Shell脚本...本文介绍了Java远程调用Shell脚本并获取输出信息的方法,使用了Java的SSH客户端来连接远程Linux服务器,执行Shell脚本,并获取输出信息。

    JAVA操作linux服务器,本文用于启动shell脚本并返回数据,简单易懂,可随时修改

    连接成功后,我们可以通过`Session.execCommand()`方法执行shell命令或者脚本。例如,我们可以将要运行的shell脚本路径作为命令传递,服务器会执行该脚本并返回输出。 3. **接收数据**: 执行命令后,我们需要...

    java调用shell向DataX传递参数,where条件,包含特殊字符

    总之,Java调用shell脚本向DataX传递参数,尤其是在where条件中包含特殊字符时,需要关注字符串转义、shell命令构建以及安全问题。同时,合理设计和使用配置文件能有效提高代码的灵活性和可维护性。

Global site tag (gtag.js) - Google Analytics