El ejemplo de este artículo indica el método de llamar al comando shell de Java. Compártelo para todos para su referencia. Los detalles son los siguientes:
Recientemente, existe tal demanda en el proyecto: después de que se completen la programación de fondos de divisas en el sistema, se debe generar la información de programación para generar un archivo TXT, y luego este archivo txt se envía a otro sistema (Kondor). El archivo de generación usa naturalmente el OutpleStreamWirter. Elegimos este último, es decir, después de la programación de fondos de divisas extranjeras, usamos el outputStreamWriter de Java para generar un archivo txt, y luego use Java para llamar al script de shell y completar el trabajo desde el archivo FTP al sistema Kondor en el script de shell .
El siguiente es el programa Java javashellutil.java:
Importar java.io.buffers; DateFormat; Static final String ExecureHellLogFile = BasePath + "Execesshell.log"; Lanza IOException {int éxito = 0; .Append (dateFormat.Format (nuevo date ())). = {"/bin/sh", "-c", shellcommand}; Número: "). Append (pid.ToString ()). append ("/r/n "); // BufferedReader se usa para leer el contenido de salida de Shell BufferedReader = new BufferedReader (nuevo Entrada StreamReader (pid.getInpputStream () ), 1024); /r/n Ejecutar resultados:/r/n "); string line = null; // Lea el contenido de salida de la shell y agregue a todo (bufferedReader! = nufferedReader! = null && (line = bufferedReader.readline ())) ! GetMessage ()). FileOutputStream (ExterShellLlogFile); OutputStreamWriter = new OutputStream (OutputStream, "UTF-8"); );}} Éxito = 1;} return éxito;}}}}
El siguiente es el script shell sendkondorfile.sh.
#!/bin/sh#logFile = "/opt/fms2_kondor/sendkondorfile.log" #Kondor System, el archivo generado genera en esta dirección kondor_ip = 192.168.1.200#ftp_username = kondor#ftp contraseña ftp_password = kondor#la ruta absoluta de El archivo que se enviará, la ruta absoluta del archivo que se enviará, filePath = "# El segundo parámetro se proporciona a FileNameIF [$# -GE" 1 "] entonces FilePath = $ 1LseeCo" No hay ruta de archivo "echo" sin el archivo ruta de archivo /n ">> $ logFilereturnfiif [$# -e" 2 "] Thenfilenamecho" No hay nombre de archivo "echo" sin nombre de archivo/n ">> $ logFilereturnfiECHO" El archivo que se enviará es $ {filepath}/$ {nombre de archivo} "CD $ {FilePath} LS $ FileNameif (test $? -Eq 0) entonces entonces" Listo para enviar archivos: $ {FilePath}/$ {FileName} "ElseeCo" archivo $ {filepath}/$ {fieldame} no existe " echo "archivo $ {filePath}/$ {FileName} no existe/n" >> $ logFilereturnPip -n $ {kondor_ip} << _ enduser $ {ftp_username} $ {ftp_password} ascPromptpt $ filenamecho_endecho " +%y-%%%%%%%% M-%d ''%h:%m:%s` envió un archivo $ {filepath}/$ {nombre de archivo} "echo" fecha +%y-%m-%d '%h:%m:%s` Enviar archivo $ {filepath}/$ {nombre de archivo}/n ">> $ logfile
El método de llamada es:
Javashellutil javashellutil = new JavashellUtil (); javashellutil.executeshell ("" sh /tmp/sendkondorfile.sh /temp tmp.pdf ");
Se espera que este artículo sea útil para el diseño del programa Java de todos.