Java เรียกคำสั่ง CMD และส่งออกข้อมูลการแสดงผล:
แพ็คเกจ com.anxin.cmd.test; นำเข้า java.io.bufferedreader; นำเข้า Java.io.InputStreamReader; คำสั่งคลาสสาธารณะ {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {ลอง {runtime rt = runtime.getRuntime (); กระบวนการ pr = rt.exec ("cmd /c dir"); // cmd/c calc // process pr = rt.exec ("d: //xunlei//project.aspx"); bufferedReader input = ใหม่ bufferedReader (ใหม่ inputStreamReader (pr.getInputStream (), "GBK")); สตริงบรรทัด = null; ในขณะที่ ((line = input.readline ())! = null) {system.out.println (บรรทัด); } int exitVal = pr.waitfor (); System.out.println ("ออกด้วยรหัสข้อผิดพลาด" + exitval); } catch (exception e) {system.out.println (e.toString ()); E.PrintStackTrace (); -มีสามวิธีที่ Java เริ่มแอปพลิเคชันเนทีฟ EXE:
วิธีแรก: ใช้วิธี CMD
/ ** * เรียกใช้คำสั่ง cmd * * @param คำสั่ง * @throws ioexception */ public String String executecmd (คำสั่งสตริง) พ่น IOException {log.info ("เรียกใช้คำสั่ง:" + คำสั่ง); runtime runtime = runtime.getRuntime (); กระบวนการกระบวนการ = runtime.exec ("cmd /c" + คำสั่ง); bufferedReader br = new bufferedReader (ใหม่ inputStreamReader (process.getInputStream (), "UTF-8")); สตริงบรรทัด = null; StringBuilder build = new StringBuilder (); ในขณะที่ ((line = br.readline ())! = null) {log.info (บรรทัด); build.append (บรรทัด); } return build.toString (); } Executecmd (เริ่ม "AxadWebBrowser" "D: /axadsbrowser/axadwebBrowser.exe"); วิธีที่สอง: ใช้ ProcessBuilder เพื่อเรียกวิธี CMD
/ ** * เริ่มแอปพลิเคชัน * * @param programname * @return * @throws ioexception */ โมฆะสาธารณะคงที่ startProgram (String programpath) พ่น IOException {log.info ("เริ่มแอปพลิเคชัน:" + programpath); if (stringUtils.isNotBlank (programpath)) {ลอง {string programname = programpath.substring (programpath.lastindexof ("/") + 1, programpath.lastindexof (".")); รายการ <string> list = new ArrayList <String> (); list.add ("cmd.exe"); list.add ("/c"); list.add ("เริ่ม"); list.add ("/" " + programname +"/""); list.add ("/" " + programpath +"/""); ProcessBuilder pbuilder = processBuilder ใหม่ (รายการ); pbuilder.start (); } catch (exception e) {e.printstacktrace (); log.error ("แอปพลิเคชัน:" + programpath + "ไม่มีอยู่จริง!"); - วิธีที่สาม: ใช้เดสก์ท็อปเพื่อเริ่มแอปพลิเคชัน
/ ** * เริ่มแอปพลิเคชัน * * @param programname * @return * @throws ioexception */ โมฆะสาธารณะคงที่ startProgram (String programpath) พ่น IOException {log.info ("เริ่มแอปพลิเคชัน:" + programpath); if (stringutils.isnotblank (programpath)) {ลอง {desktop.getdesktop (). เปิด (ไฟล์ใหม่ (programpath)); } catch (exception e) {e.printstacktrace (); log.error ("แอปพลิเคชัน:" + programpath + "ไม่มีอยู่จริง!"); -