Red de conocimiento informático - Conocimiento del nombre de dominio - Cómo escribir comandos de DOS en código java

Cómo escribir comandos de DOS en código java

El siguiente es un patrón de programa más típico:

Proceso proceso = Runtime.getRuntime().exec(".\\p.exe");

En el programa anterior, El La primera línea ".\\\exe" es el nombre del programa que se ejecutará. Runtime.getRuntime() devuelve el objeto Runtime de la aplicación actual. El método exec() del objeto indica a la máquina virtual Java que cree un niño. proceso para ejecutar el especificado Ejecuta el programa y devuelve la instancia del objeto de proceso correspondiente al proceso hijo. A través de Proceso, puede controlar la ejecución de un proceso hijo u obtener información sobre el proceso hijo. El propósito de la segunda declaración es esperar a que se complete el proceso secundario antes de continuar.

Pero en la plataforma Windows, si no se maneja adecuadamente, a veces no se pueden obtener los resultados esperados. Las siguientes son varias situaciones que necesitan atención y que el autor resumió en la programación real: 1. Ejecute comandos internos de DOS

Si desea ejecutar comandos internos de DOS, existen dos métodos. Una forma es incluir el intérprete de comandos en el argumento exec(). Por ejemplo, para ejecutar el comando dir, puede escribir exec("cmd.exe /c dir") en NT y "command.exe /c dir" en Windows 95/98, donde el parámetro "/c" significa cerrar Cierre la ventana inmediatamente después de Dos. Otra forma es colocar el comando interno en el archivo de comando por lotes my_dir.bat y escribirlo como exec("my_dir.bat") en el programa Java. Si simplemente escribe exec ("dir"), la máquina virtual Java informará un error de tiempo de ejecución. El primer método garantiza la portabilidad del programa y requiere que la plataforma del sistema operativo en ejecución se lea en el programa para llamar a diferentes intérpretes de comandos. El último método no requiere más procesamiento. 2. Abrir un archivo no ejecutable

Para abrir un archivo no ejecutable, pero el archivo está asociado con la aplicación, existen dos métodos. Tomando como ejemplo la apertura de un archivo .doc de un documento de Word, se pueden escribir los dos métodos siguientes en Java:

exec("start .\\a.doc");

exec( "c:\\Program Files\\\\Microsoft Office\\office\\winword.exe .\\a.doc");

Obviamente, el primer método es más conciso y conveniente. 3. Utilice la salida estándar para ejecutar programas ejecutables de DOS

En la plataforma Windows, la ventana de DOS que ejecuta el programa llamado generalmente no se cierra automáticamente después de ejecutar el programa, lo que hace que la aplicación Java se bloquee en waitfor() . Una posible razón para este fenómeno es que el programa ejecutable tiene una gran cantidad de salida estándar, pero el búfer de salida estándar de la ventana en ejecución no es lo suficientemente grande