java执行cmd命令和linux命令


一:window下执行cmd指定

程序例子:

/*该方法实现文件自动复制功能。利用系统命令将指定文件名从源路径复制到目的路径
     * 如果目的路径不存在时,自动创建目的路径
     * */ 
public static boolean copyFile(String origpath, String destpath, String filename) throws Exception{
    String osName = System.getProperty("os.name");
    boolean flag = false;
    /*系统命令支持的操作系统Windows XP, 2000 2003 7*/
    if(!(osName.equalsIgnoreCase("windows XP") || osName.equalsIgnoreCase("windows 2000") || osName.equalsIgnoreCase("windows 2003") || osName.equalsIgnoreCase("windows 7"))){
        return flag;
    }
    Runtime rt = Runtime.getRuntime();
    Process p = null;
    File f = new File(destpath);
    if(!f.exists()){
        f.mkdirs();
    }
    int exitVal;
    p = rt.exec("cmd exe /c copy " + origpath+filename+" "+destpath);
    // 进程的出口值。根据惯例,0 表示正常终止。 
    exitVal = p.waitFor();
    if(exitVal == 0){
        flag = true;
    }else{
        flag = false;
    }
    return flag;    
    
}

    public static void main(String[] args) {

        try {
            copyFile("D:\\DATA\\", "D:\\a\\", "131204.txt");
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
 
         
    }


二:linux下执行shell命令

程序例子:

package edu.test;
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);
	    }
	 
	}
执行结果:



  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值