java封装linux命令执行
java封装linux命令执行详细介绍
以下是一个封装 Linux 命令执行的 Java 工具类,包含完整的输入 / 输出流处理和异常封装:
V1
封装特点:
- 安全执行:使用 ProcessBuilder 替代 Runtime.exec (),支持命令参数数组
- 流处理:异步读取输出流,避免缓冲区阻塞(适用于大输出场景)
- 结果封装:包含退出码、标准输出、错误输出(错误流已合并到输出流)
- 异常处理:保留原始 IO 异常和中断异常
- 兼容性:支持 Linux/macOS 系统,Windows 需调整命令参数
- 示例用法:包含 main 方法演示基本使用
使用说明:
- 直接复制代码到 Java 项目中
- 调用方式:java
resultresult
- 结果判断:java
resultoutresult
err result
注意事项:
- 建议使用命令参数数组形式防止命令注入
- 长时间运行的命令需添加超时控制(可通过 Process.destroyForcibly () 实现)
- 对于需要交互的命令(如 sudo),需配合输入流处理
- 生产环境建议添加日志记录和权限校验
这个封装可以直接用于需要执行系统命令的 Java 项目,支持快速迭代和功能扩展(如添加超时机制、环境变量配置等)。