java执行Linux命令的方法

本文实例讲述了java执行Linux命令的方法。分享给大家供大家参考。具体实现方法如下:

代码如下:

public class StreamGobbler extends Thread { 
     
    InputStream is; 
    String type; 
 
    public StreamGobbler(InputStream is, String type) { 
        this.is = is; 
        this.type = type; 
    } 
 
    public void run() { 
        try { 
            InputStreamReader isr = new InputStreamReader(is); 
            BufferedReader br = new BufferedReader(isr); 
            String line = null; 
            while ((line = br.readLine()) != null) { 
                if (type.equals("Error")) { 
                    System.out.println("Error   :" + line); 
                } else { 
                    System.out.println("Debug:" + line); 
                } 
            } 
        } catch (IOException ioe) { 
            ioe.printStackTrace(); 
        } 
    } 

private void shell(String cmd)
{
        String[] cmds = { "/bin/sh", "-c", cmd };
        Process process;

try
        {
            process = Runtime.getRuntime().exec(cmds);

StreamGobbler errorGobbler = new StreamGobbler(process.getErrorStream(), "Error");
            StreamGobbler outputGobbler = new StreamGobbler(process.getInputStream(), "Output");
            errorGobbler.start();
            outputGobbler.start();
            try
            {
                process.waitFor();
            }
            catch (InterruptedException e)
            {
                e.printStackTrace();
            }
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
}

其中参数 cmd 为Linux命令。每次只能执行一条命令。

1.Java Runtime.exec()注意事项:

① 永远要在调用waitFor()方法之前读取数据流
② 永远要先从标准错误流中读取,然后再读取标准输出流

2.最好的执行系统命令的方法就是写个bat文件或是shell脚本。

希望本文所述对大家的Java程序设计有所帮助。

(0)

相关推荐

  • Linux中使用Shell脚本查看Java线程的CPU使用情况

    线上Java应用,在业务高峰期的时候经常出现CPU跑高,需要查看实时的线程占用cpu情况,下面是一个很好用的脚本,可以快速导出每个线程的占用CPU情况,结合jstack日志,排查到具体的线程类名. 一.首先获得jvm的进程ID: 复制代码 代码如下: ps -ef|grep javatomcat     374   372  1 11:45 ?        00:02:30 jsvc.exec -java-home /usr/java/latest -user tomcat -pidfile

  • 如何将javaweb项目部署到linux下

    一般都在windows下开发的,现在部署到linux下:1,将项目达成war包(用eclipse,项目右键-->Export-->选择war file)2,将tomcat(用winSCP当然你也可以用secureCRT,用securCRT需要建立sftp(即上传文件的目录),用put tomcat命令)考到ilunx对应的目录下3,然后将项目的war包放到tomcat的webapps目录下4,启动tomcat(命令:./startup.sh(linux下启动tomcat是.sh文件而非.bat

  • java在linux系统下开机启动无法使用sudo命令的原因及解决办法

    操作系统:centos 5.2场景描述:我们有一个WEB工程,客户要求使用普通用户(例如chb)运行,然后在页面上有个按钮,点击之后可以关机 实现方式:1. JAVA代码: 复制代码 代码如下: public static boolean shutDownForLinux() {                try {                        Runtime.getRuntime().exec("sudo /sbin/poweroff");           

  • 在Linux操作系统上安装和更新JAVA8的教程

    本篇文章会介绍如何在Linux操作系统上安装和更新JAVA8. 1. 导读 经过漫长的等待,Java SE Development Kit 8终于可以下载了,JDK8集成了很多增强的功能在2014年3月18日正式发布,你可以在这里查找所有的功能. 2. 下载最新的JDK版本 你可以直接从Oracle官网下载最新的版本,你也可以通过shell运行下面的命令进行下载: 对于64位 cd /opt/ wget --no-cookies --no-check-certificate --header "

  • Java实现Linux下双守护进程

    一.简介 现在的服务器端程序很多都是基于Java开发,针对于Java开发的Socket程序,这样的服务器端上线后出现问题需要手动重启,万一大半夜的挂了,还是特别麻烦的. 大多数的解决方法是使用其他进程来守护服务器程序,如果服务器程序挂了,通过守护进程来启动服务器程序. 万一守护进程挂了呢?使用双守护来提高稳定性,守护A负责监控服务器程序与守护B,守护B负责监控守护A,任何一方出现问题,都能快速的启动程序,提高服务器程序的稳定性. Java的运行环境不同于C等语言开发的程序,Java程序跑在JVM

  • Linux下执行java程序的方法

    想要在Ubuntu上运行java程序,可以将java程序编译成功后打包,然后在Ubuntu上用命令执行jar文件 具体操作如下: 1.Windows上使用eclipse编译java工程,编译完成后导出为Runnable JAR File 例如,此处将test工程中的Test2文件export为MyTest2.jar文件 2.Ubuntu上java环境安装 ①jdk官网http://www.oracle.com/technetwork/java/javase/downloads/jdk8-down

  • Java中通过jsch来连接远程服务器执行linux命令

    有时候你可能需要通过代码来控制执行linux命令实现某些功能. 针对这类问题可以使用JSCH来实现,具体代码如下: public class CogradientImgFileManager{ private static final Logger log = LoggerFactory.getLogger(CogradientImgFileManager.class); private static ChannelExec channelExec; private static Session

  • Linux下Java开发环境搭建以及第一个HelloWorld

    想在Linux进行JAVA开发吗?环境如何搭建,第一个HelloWorld如何实现,下面马上奉献: 1环境搭建     1.1 Java JDK 的安装     Java JDK 是java编译和运行的必要环境,所以首先必须安装这一软件包,方法如下:     1)下载JDK压缩包,注意看好版本是x86还是x64,windows的还是           linux,要搞清楚,我下的是jdk-7u13-linux-i586.tar.gz:     2)解压压缩包,并将解压后的目录放到/usr/li

  • Linux系统下搭建Java开发环境

    一.下载 首先,当然是要下载了. 地址:www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 按照需要选择不同的版本. 二. 解压 将下载下来的 .tar.gz 文件解压. 使用如下命令解压: 复制代码 代码如下: sudo tar zxvf ./jdk-7u45-linux-x64.tar.gz 为了方便管理,可将解压后的文件移至另一个文件夹. 不做也行. 笔者将文件移至了 /opt/Java/

  • Java调用linux shell脚本的方法

    首先,我们需要增加用户对该脚本的执行权限,即 复制代码 代码如下: String cmdstring = "chmod a+x test.sh";  Process proc = Runtime.getRuntime().exec(cmdstring);  proc.waitFor(); //阻塞,直到上述命令执行完  cmdstring = "bash test.sh"; //这里也可以是ksh等  proc = Runtime.getRuntime().exec

随机推荐