Runtime.getruntime.exec注意事项

news/2024/9/24 19:13:47/

Runtime.getruntime.exec注意事项

    • 1.普通使用--简单命令
    • 2.指定文件下执行命令
    • 注意事情(有过滤脚本)
    • 注意事项2

1.普通使用–简单命令

Runtime.getruntime.exec(command);

java">		    // 可以是命令本身(ls)或者是脚本(/usr/local/test.sh)String command = "ls";Process proc = Runtime.getRuntime().exec(command);BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));String line = null;//读取结果while((line = in.readLine()) != null) {result.append(line);}in.close();

2.指定文件下执行命令

在 usr/local 文件下执行command命令。

java">Runtime.getRuntime().exec(command,new String[]{},"/usr/local")

注意事情(有过滤脚本)

如果命令中有管道|.此时执行命令是没有返回值的。必须采用编写脚本的方式。
获取java进程
eg: ps -ef|grep java

java">//这样是没有返回值的
Runtime.getRuntime().exec("ps -ef|grep java")
// 必须先写文件,然后执行文件脚本有返回值
File file = new File("/usr/local/grepCommand.sh")
if(!file.exists()){file.createNewFile();
}FileOutputStream fos = new FileOutputStream(file);fos.write("ps -ef|grep java".getBytes());fos.close();Runtime.getRuntime().exec("chmod 777 /usr/local/grepCommand.sh")//防止下面命令执行太快 权限还没好Thread.sleep(500);//此处可拿到结果Runtime.getRuntime().exec("/usr/local/grepCommand.sh")

注意事项2

如果执行的脚本是反复回写的流。执行的时候线程可能偶先自动中断的场景。

原因是网络不稳定,切换到光口中去。


http://www.ppmy.cn/news/1449039.html

相关文章

MyBatis:mybatis入门

MyBatis 持久层框架,用于简化JDBC开发,是对原始JDBC程序的封装 持久层 数据访问层(dao),用来操作数据库 框架 一个半成品软件,一套可重用的通用软件代码模型. JDBC (Java DataBase Connectivity) 使用java语言操作关系型数据库的一套API 本质是sun公司官方定义的一套操…

Hive 表定义主键约束

文章目录 1.建表语句2.主键约束3.主键约束的意义参考文献 1.建表语句 先看一下官方给的完整的见表语句: CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name -- (Note: TEMPORARY available in Hive 0.14.0 and later)[(col_name data…

Linux:web服务基于IP和域名部署

Linux:web服务基于IP和域名部署 配置基于IP的虚拟主机 # 添加两个IP [rootserver100 ~]# ip addr add 172.25.254.10/24 dev eth0 [rootserver100 ~]# ip addr add 172.25.254.20/24 dev eth0# 这个命令是专门用来查看IP信息的 [rootserver100 ~]# ip addr 1: lo:…

LeetCode - 611.有效三角形个数

题目链接 LeetCode - 611. 有效三角形的个数 动画解释 代码解释 class Solution { public:int triangleNumber(vector<int>& nums) {sort(nums.begin(),nums.end());int cout 0;int fix nums.size()-1;while(fix>1){int left 0;int right fix-1;while(left &l…

Thinkphp使用dd()函数

用过Laravel框架的同学都知道在调试代码的时候使用dd()函数打印变量非常方便&#xff0c;在ThinkPHP6及以上的版本框架中也默认加上了这个函数。但是在ThinkPHP5或更低版本的框架中&#xff0c;dd 并不是一个内置的方法&#xff0c;不过我们可以手动添加这个函数&#xff0c;步…

蓝桥杯单片机省赛——第八届“基于单片机的电子钟程序设计与调试”程序部分

往期回顾 第三届蓝桥杯单片机省赛 第四届蓝桥杯单片机省赛 第五届蓝桥杯单片机省赛 第六届蓝桥杯单片机省赛 第七届蓝桥杯单片机省赛 文章目录 往期回顾一、前期准备二、代码详情1.基础代码蜂鸣器/继电器/led/定时器之类的代码 2.按键详解按键写法讲解 3.驱动的处理驱动写法讲…

Android --- SQlite数据存储

使用 SQLite 保存数据 | Android Developers (google.cn) SQLiteOpenHelper 类包含一组用于管理数据库的实用 API。当您使用此类获取对数据库的引用时&#xff0c;系统仅在需要时才执行可能需要长时间运行的数据库创建和更新操作&#xff0c;而不是在应用启动期间执行。您仅需…

Postman 汉化安装及使用指南:快速上手 Postman 中文版

Postman 是一款常用的 API 测试工具&#xff0c;可以方便地进行接口测试、调试和文档编写。本文将详细介绍如何下载安装 Postman 并汉化&#xff0c;包括每个步骤的详细说明。 下载安装 Postman 1、打开浏览器&#xff0c;访问 Postman 官网&#xff0c;下载适用于自己系统的…