java執行cmd命令和linux命令
阿新 • • 發佈:2019-02-01
一: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); } }