Java llama al comando CMD y emite la información de visualización:
paquete com.anxin.cmd.test; import java.io.bufferedReader; import java.io.inputstreamreader; Comando de clase pública {public static void main (string [] args) {try {runtime rt = runtime.getRuntime (); Proceso pr = rt.exec ("cmd /c dir"); // cmd/c calc // proceso pr = rt.exec ("d: //xunlei//project.aspx"); BufferedReader input = new BufferedReader (new InputStreamReader (pr.getInputStream (), "GBK")); Línea de cadena = nulo; while ((line = input.readline ())! = null) {system.out.println (línea); } int exitval = pr.waitfor (); System.out.println ("Salido con el código de error" + ExitVal); } catch (Exception e) {System.out.println (e.ToString ()); E.PrintStackTrace (); }}}Hay tres formas en que Java comienza la aplicación nativa EXE:
El primer método: usar el método CMD
/ ** * Ejecutar el comando cmd * * @param command * @throws ioexception */ public static string ejecutecmd (comando de cadena) lanza ioexception {log.info ("Ejecutar comando:" + comando); Runtime Runtime = runtime.getRuntime (); Proceso process = runtime.exec ("cmd /c" + comando); BufferedReader BR = New BufferedReader (new InputStreamReader (process.getInputStream (), "UTF-8")); Línea de cadena = nulo; StringBuilder Build = new StringBuilder (); while ((línea = br.readline ())! = null) {log.info (línea); build.append (línea); } return build.ToString (); } ejecutecmd (inicio "axadwebbrowser" "d: /xadsbrowser/axadwebbrowser.exe"); El segundo método: use ProcessBuilder para llamar al método CMD
/ ** * Iniciar la aplicación * * @param ProgramName * @return * @throws ioException */ public static void startProgram (String ProgramMATH) lanza IOException {log.info ("Iniciar la aplicación:" + ProgramMampath); if (stringUtils.isNotBlank (program)) {try {String ProgramName = Programpath.Substring (Programpath.lastIndexof ("/") + 1, Programpath.lastIndexof (".")); List <String> list = new ArrayList <String> (); list.add ("cmd.exe"); list.add ("/c"); list.add ("inicio"); list.add ("/" " + ProgramName +"/""); list.add ("/" " + Programmath +"/""); ProcessBuilder pBuilder = new ProcessBuilder (lista); pbuilder.start (); } catch (Exception e) {E.PrintStackTrace (); log.error ("Aplicación:" + Programmath + "No existir!"); }}} La tercera forma: use escritorio para iniciar la aplicación
/ ** * Iniciar la aplicación * * @param ProgramName * @return * @throws ioException */ public static void startProgram (String ProgramMATH) lanza IOException {log.info ("Iniciar la aplicación:" + ProgramMampath); if (stringUtils.isNotBlank (program)) {try {Desktop.getDeskTop (). Open (nuevo archivo (programación)); } catch (Exception e) {E.PrintStackTrace (); log.error ("Aplicación:" + Programmath + "No existir!"); }}}