鄙人用这一段代码执行得到值为null ,在linux命令端执行可以得到值,请各位指点一二
public static Object exCmd2(String cmd) {
try {
Process process = Runtime.getRuntime().exec(cmd);
InputStreamReader ir = new InputStreamReader(
process.getInputStream());
LineNumberReader input = new LineNumberReader(ir);
String line;
while ((line = input.readLine()) != null) {
System.out.println(line);
}
return null;
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return null;
}
或许这就是你想要的
package question.save;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
/**
* java在linux环境下执行linux命令,然后返回命令返回值。
* @author lee
*/
public class ExecLinuxCMD {
public static Object exec(String cmd) {
try {
String[] cmdA = { "/bin/sh", "-c", cmd };
Process process = Runtime.getRuntime().exec(cmdA);
LineNumberReader br = new LineNumberReader(new InputStreamReader(
process.getInputStream()));
StringBuffer sb = new StringBuffer();
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
sb.append(line).append("\n");
}
return sb.toString();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
String pwdString = exec("pwd").toString();
String netsString = exec("netstat -nat|grep -i \"80\"|wc -l").toString();
System.out.println("==========获得值=============");
System.out.println(pwdString);
System.out.println(netsString);
}
}
输出结果:
/home/lee/program/workspace/java/test
20
==========获得值=============
/home/lee/program/workspace/java/test
20
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。