Java执行Linux命令

简介: Java执行Linux命令

简单命令可以用

CommandUtil.run(cmd);

复杂命令用

CommandUtil.runt(cmd);

参考:https://blog.csdn.net/qq_21508059/article/details/80334910

package xxxxx.utils;
 
import java.io.IOException;
import java.io.InputStream;
import java.util.Scanner;
import java.util.concurrent.TimeUnit;
 
 
public class CommandUtil {
    public static String run(String command) throws IOException {
        Scanner input = null;
        String result = "";
        Process process = null;
        try {
            process = Runtime.getRuntime().exec(command);
            try {
                //等待命令执行完成
                process.waitFor(10, TimeUnit.SECONDS);
            } catch (InterruptedException e) {
                e.printStackTrace();
                System.out.println(e.getMessage());
            }
            InputStream is = process.getInputStream();
            input = new Scanner(is);
            while (input.hasNextLine()) {
                result += input.nextLine() + "\n";
            }
            result = command + "\n" + result; //加上命令本身,打印出来
        } finally {
            if (input != null) {
                input.close();
            }
            if (process != null) {
                process.destroy();
            }
        }
        return result;
    }
 
    public static String runt(String command) throws IOException {
        Scanner input = null;
        String result = "";
        Process process = null;
        try {
//            new String[]{"/bin/sh", "-c", cmd}
            process = Runtime.getRuntime().exec(new String[]{"/bin/sh", "-c", command});
            try {
                //等待命令执行完成
                process.waitFor(10, TimeUnit.SECONDS);
            } catch (InterruptedException e) {
                System.out.println(e.getMessage());
                e.printStackTrace();
            }
            InputStream is = process.getInputStream();
            input = new Scanner(is);
            while (input.hasNextLine()) {
                result += input.nextLine() + "\n";
            }
            result = command + "\n" + result; //加上命令本身,打印出来
        } finally {
            if (input != null) {
                input.close();
            }
            if (process != null) {
                process.destroy();
            }
        }
        return result;
    }
}

相关文章
|
15天前
|
设计模式 Java Linux
Linux的20个常用命令
Linux的23个常用命令
Linux的20个常用命令
|
1天前
|
消息中间件 分布式计算 Java
Linux环境下 java程序提交spark任务到Yarn报错
Linux环境下 java程序提交spark任务到Yarn报错
11 5
|
1天前
|
Java Linux Python
Linux环境下 代码java调用python出错
Linux环境下 代码java调用python出错
12 3
|
1天前
|
Linux Shell
10-10|linux命令查询 关键字在文本中出现的行数
10-10|linux命令查询 关键字在文本中出现的行数
|
1天前
|
Oracle Java 关系型数据库
Linux下JDK环境的配置及 bash: /usr/local/java/bin/java: cannot execute binary file: exec format error问题的解决
如果遇到"exec format error"问题,文章建议先检查Linux操作系统是32位还是64位,并确保安装了与系统匹配的JDK版本。如果系统是64位的,但出现了错误,可能是因为下载了错误的JDK版本。文章提供了一个链接,指向Oracle官网上的JDK 17 Linux版本下载页面,并附有截图说明。
Linux下JDK环境的配置及 bash: /usr/local/java/bin/java: cannot execute binary file: exec format error问题的解决
|
1天前
|
存储 Linux Shell
常用vim命令和vim基本使用及Linux用户的管理,用户和组相关文件
这篇文章介绍了Vim编辑器的基本使用、常用命令和模式,以及Linux系统中用户和组的管理方法,包括用户和组相关文件如/etc/passwd、/etc/shadow和/etc/group的说明。
常用vim命令和vim基本使用及Linux用户的管理,用户和组相关文件
|
2天前
|
Linux Docker 容器
linux之docker命令
linux之docker命令
|
3天前
|
Ubuntu Java Linux
LINUX常用命令总结_持续更新
本文汇总了多种Linux命令的使用方法,包括系统信息查询、文件与目录管理、打包与压缩、软件包管理、文件系统分析、备份操作及网络配置等。例如,使用`df -h`检查文件系统使用情况,`uname -a`查看内核版本,`ps -ef|grep java`查看Java服务,`kill -9 pid`结束进程,以及使用`tar`、`zip`、`unzip`进行文件压缩与解压。此外,还介绍了系统关机、重启、登录注销、文件权限设置、磁盘空间管理、RPM与DEB包安装更新、文本处理、文件系统初始化与修复、SWAP文件系统管理、光盘刻录与挂载、网络接口配置等实用命令。
|
10天前
|
机器学习/深度学习 存储 Linux
linux中强大且常用命令:find、xargs、grep
linux中强大且常用命令:find、xargs、grep
32 9
|
10天前
|
SQL 移动开发 Linux
linux下find、grep命令详解
linux下find、grep命令详解
107 8