如何在java程序中调用linux命令或者shell脚本
2个回答
展开全部
楼上说的是对的,我贴一个我写的一个方法给你做参考。
/**
* 根据Linux命令获取磁盘的剩余空间,根据传入的参数size比较,如果大于size就返回ture,否则返回false
* @param command
* @param size
* @return
*/
public static boolean isAvailableOnLinux(String command ,Long size) {
//这里使用 df +文件夹路径 查看磁盘的信息
Long space=0L;
InputStreamReader ir = null;
LineNumberReader input = null;
Process process = null;
try {
//获取linux进程
process = Runtime.getRuntime().exec(command);
//新建流
ir = new InputStreamReader(process.getInputStream());
input = new LineNumberReader(ir);
String line;
int i = 1;
while ((line = input.readLine()) != null) {
if(i==2){
//使用正则表达式分隔字符串
String[]s=line.split("\\s+");
//第2行,第4列的值为该磁盘的可用空间大小
space=Long.parseLong(s[3]);
}
i++;
}
}
catch (java.io.IOException e) {
System.err.println("IOException " + e.getMessage());
}
finally{
//关闭流
if (input != null) {
try {
input.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (ir != null) {
try {
ir.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
if(space>size){
return true;
}else{
return false;
}
}
/**
* 根据Linux命令获取磁盘的剩余空间,根据传入的参数size比较,如果大于size就返回ture,否则返回false
* @param command
* @param size
* @return
*/
public static boolean isAvailableOnLinux(String command ,Long size) {
//这里使用 df +文件夹路径 查看磁盘的信息
Long space=0L;
InputStreamReader ir = null;
LineNumberReader input = null;
Process process = null;
try {
//获取linux进程
process = Runtime.getRuntime().exec(command);
//新建流
ir = new InputStreamReader(process.getInputStream());
input = new LineNumberReader(ir);
String line;
int i = 1;
while ((line = input.readLine()) != null) {
if(i==2){
//使用正则表达式分隔字符串
String[]s=line.split("\\s+");
//第2行,第4列的值为该磁盘的可用空间大小
space=Long.parseLong(s[3]);
}
i++;
}
}
catch (java.io.IOException e) {
System.err.println("IOException " + e.getMessage());
}
finally{
//关闭流
if (input != null) {
try {
input.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (ir != null) {
try {
ir.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
if(space>size){
return true;
}else{
return false;
}
}
2016-08-28
展开全部
Runtime.exec 。。。。。。。。。。。。。。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询