Java代码执行Linux命令

1.环境准备

在pom.xml里面添加打包依赖日志依赖

2.创建一个Test.java类,并添加如下代码。

import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class Test {

    //创建日志log4j2对象
    static Logger log = LogManager.getLogger(Test.class.getName());

    public static void main(String[] args) throws IOException, InterruptedException {


        //执行的脚本命令(注意:加参数的话,.sh和参数之间保留一个空格)
        String cmd = "sh /data/test.sh " + args[0];
        log.info(cmd);//输出下命令
        Process proc = Runtime.getRuntime().exec(cmd);
        //获取脚本执行的得到的结果并缓存
        BufferedReader reader = new BufferedReader(new InputStreamReader(proc.getInputStream()));

        String str;
        //读取数据
        while ((str = reader.readLine()) != null) {
            log.info(str);//打印结果
        }
        reader.close();
        proc.waitFor();

    }
}

3.执行package打包

4.将打包的文件通过ftp工具上传到linux服务器/data文件夹下

5.在/data文件夹下创建test.sh文件,并添加如下命令

echo "i am $1"

6.执行Jar包(它会调用test.sh,并将test.sh执行的结果存入日志)

[root@tuge1 data]# java -jar JavaMavenObj-1.0-SNAPSHOT-jar-with-dependencies.jar 测试下

查看日志:

posted @ 2020-04-27 09:50  shuai7boy  阅读(3516)  评论(0编辑  收藏  举报