`
wen_xudong7
  • 浏览: 32498 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

(转)如何在java程序中调用linux命令或者shell脚本,带参数

 
阅读更多
在java程序中如何调用linux的命令?如何调用shell脚本呢?

这里不得不提到java的process类了。

process这个类是一个抽象类,封装了一个进程(你在调用linux的命令或者shell脚本就是为了执行一个在linux下执行的程序,所以应该使用process类)。

process类提供了执行从进程输入,执行输出到进程,等待进程完成,检查进程的推出状态,以及shut down掉进程。


至于详细的process类的介绍放在以后介绍。

另外还要注意一个类:Runtime类,Runtime类是一个与JVM运行时环境有关的类,这个类是Singleton的。

这里用到的Runtime.getRuntime()方法是取得当前JVM的运行环境,也是java中唯一可以得到运行环境的方法。(另外,Runtime的大部分方法都是实例方法,也就是说每次运行调用的时候都需要调用到getRuntime方法)

下面说说Runtime的exec()方法,这里要注意的有一点,就是public Process exec(String [] cmdArray, String [] envp);这个方法中cmdArray是一个执行的命令和参数的字符串数组,数组的第一个元素是要执行的命令往后依次都是命令的参数,envp感觉应该和C中的execve中的环境变量是一样的,envp中使用的是name=value的方式。

下面说一下,如何使用process来调用shell脚本

例如,我需要在linux下实行linux命令:sh test.sh,下面就是执行test.sh命令的方法:

这个var参数就是日期这个201102包的名字。

    String shpath="/test/test.sh";   //程序路径

    Process process =null;

    String command1 = “chmod 777 ” + shpath;
    process = Runtime.getRuntime().exec(command1);
    process.waitFor();




    String var="201102";               //参数

    String command2 = “/bin/sh ” + shpath + ” ” + var; 
    Runtime.getRuntime().exec(command2).waitFor();

注意:

1

我为什么要使用 chmod 777命令呢?在有的机器上面,可能没有设置权限问题。这是你在linux下面执行shell脚本需要注意的问题。没有的话,就需要添加权限,就用chmod 777,否则在执行到Runtime.getRuntime().exec的时侯会出现Permission denied错误。

2

waitFor()这个也是必不可缺的,如果你需要执行多行命令的话,把waitFor()这个加上。
分享到:
评论

相关推荐

    java调用shell(包含有参数的调用)

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

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

    在标题提到的场景中,我们需要多次调用Linux命令或shell脚本。`Runtime.exec(String command)`方法用于执行单个命令,而如果需要执行包含多个命令的shell脚本,可以使用`Runtime.exec(String[] cmdArray)`,其中...

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

    在Windows和Linux环境中,启动批处理脚本(bat)和shell脚本(sh)是常见的任务,特别是在自动化和脚本执行过程中。`RunScript.java`和`StreamGobbler.java`这两个文件可能就是用来实现这个功能的。 `RunScript....

    shell 脚本调用Java类

    当需要将这两者结合时,通常是为了在Shell脚本中调用Java程序,实现更复杂的系统集成或者自动化流程。 标题"shell 脚本调用Java类"指出我们要讨论的主题是如何在Shell脚本中执行Java程序,尤其是直接调用Java类。...

    linux shell脚本启动java类

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

    java调用shell脚本

    在`java程序中调用linux命令.txt`文件中,可能包含了如何在Java程序中直接调用Linux命令的示例代码。通常,我们可以使用`Runtime.getRuntime().exec()`或`ProcessBuilder`类来执行命令。例如: ```java Process ...

    android系统中调用shell脚本

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

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

    因为我在linux环境下执行shell脚本时sqlldr命令和sqlplus命令是正常执行的,没有任何问题,但是在java代码中调用脚本时却报错,所有排除了其他原因,只可能是环境变量的问题, 于是我把oracle的所有环境变量直接复制...

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

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

    Java调用linux shell脚本的方法

    本文将详细探讨如何在Java程序中调用Linux shell脚本,并解释相关的关键概念和步骤。 首先,调用shell脚本的基本过程分为以下几个步骤: 1. **设置脚本执行权限**:在Linux系统中,执行一个文件(如shell脚本)...

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

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

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

    本主题聚焦于使用Java来操作Linux服务器,特别是通过执行shell脚本来获取服务器的反馈数据。以下将详细阐述这个过程涉及的技术点和步骤。 首先,我们需要理解Java中的SSH(Secure Shell)框架,它允许我们在安全的...

    Java 调用 Linux shell 命令执行框架:sshxcute

    sshxcute 就是这样一个框架工具集,它基于 JSCH 构建,允许工程师利用Java 代码通过 SSH 连接远程批量执行 Linux/UNIX 系统上的命令或者脚本,同时加入了判断成功与否,取回输出等多种实用功能。sshxcute 不管是针对...

    远程shell调用.rar

    这个“远程shell调用.rar”文件包含了一个基于Java的工具,它允许开发者通过SSH连接到Linux服务器并执行Shell脚本,从而简化了这一过程。 首先,让我们了解一下SSH2。SSH2是SSH协议的第二版,相比SSH1,它提供了更...

    Java调用Shell脚本代码

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

    java代码中调用linux/unix命令

    本文将详细介绍如何在Java代码中调用Linux/Unix命令,以及相关的技术要点。 首先,Java提供了`Runtime`类和`ProcessBuilder`类来执行外部命令。`Runtime.getRuntime().exec()`方法是较早的方式,而`ProcessBuilder`...

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

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

    java调用Shell脚本.doc

    ### Java调用Shell脚本详解 ...通过上述介绍,我们可以看到Java调用Shell脚本是一项非常实用的技术,能够帮助我们在Java应用中灵活地集成复杂的系统功能。理解并掌握这一技术对于提升软件开发效率具有重要意义。

    重启java程序shell脚本

    linux中java项目需要重启一般使用先找到进程杀掉进程,然后找到项目启动,整个过程不算复杂,但是每次都操作一遍太麻烦,我这里把这个过程整理成shell脚本,大家可以修改里面项目名称,每次直接执行这个命令重启项目...

    Java 调用 Linux 命令实战(含完整代码)1

    在Java编程中,有时我们需要与操作系统...通过以上内容,你已经了解了如何使用Java调用Linux命令,以及如何在Spring Boot中实现这个功能。这为Java与Linux系统的集成提供了基础,可以方便地实现自动化运维和管理任务。

Global site tag (gtag.js) - Google Analytics