L'exemple de cet article indique la méthode d'appel de la commande shell de Java. Partagez-le pour tout le monde pour votre référence. Les détails sont les suivants:
Récemment, il existe une telle demande dans le projet: une fois la planification des fonds de devises étrangères dans le système terminée, les informations de planification doivent être générées pour générer un fichier TXT, puis ce fichier TXT est envoyé à un autre système (Kondor). Le fichier de génération utilise naturellement le sort de sortie. Nous choisissons ce dernier, c'est-à-dire qu'après la planification des fonds de devises étrangères, utilisons OutputStreamWriter de Java pour générer un fichier TXT, puis utilisons Java pour appeler le script shell et terminer les travaux du fichier FTP vers le système Kondor dans le script shell .
Ce qui suit est Java Program Javashellutil.java:
Importer Java.io.BuffredReader; DATEFORMAT; Statique finale ExecutellLogFile = BasEpath + "Executell.log"; Lance ioException {int succès = 0; StringBuffer StringBuffer = new StringBuffer (); .APPEND (DATEFORMAT.FORMATIQUE (NOUVEAU DATE ())). = {"/ bin / sh", "-c", shellcommand}; Numéro: "). APPEND (pid.toString ()). APPEND (" / r / n "); // BufferedReader est utilisé pour lire le contenu de sortie de Shell BufferedReader = new BufferedReader (new INTUTER StreamReader (pid.getInpputStream () ), 1024); / r / n exécuter les résultats: / r / n "); string line = null; // lisez le contenu de sortie de shell et ajoutez à l'ensemble (tamponderader! = NuffereDader! = null && (line = bufferedReader.readline ()) ! GetMessage ()). FileOutputStream (EXECTRESSELLLOGFILE); );}} Succès = 1;} Retour Success;}}}}
Ce qui suit est le script shell sendkondorfile.sh.
#! / bin / sh # logfile = "/opt/fms2_kondor/sendkondorfile.log" Système #kondor, le fichier généré génère à cette adresse Kondor_ip = 192.168.1.200 # ftp_username = kondor # ftp mot de passe ftp_password = kondor # le chemin absolu de l'absus Le fichier à envoyer, le chemin absolu du fichier à envoyer, filepath = "# Le deuxième paramètre est donné à filenameif [$ #ge" 1 "] thenfilepath = $ 1lseecho" pas de chemin de fichier "echo" sans chemin de fichier / n ">> $ logfileReturnfiif [$ # -e" 2 "] thenfilenamecho" Aucun nom de fichier "echo" sans nom de fichier / n ">> $ logfilereTurnfiEcho" Le fichier à envoyer est $ {filepath} / $ {filename} "Cd $ {filepath} ls $ filenameif (test $? -Eq 0) thencho" prêt à envoyer des fichiers: $ {filepath} / $ {filename} "elseecho" file $ {filepath} / $ {fieldame} n'existe pas " echo "file $ {filepath} / $ {filename} n'existe pas / n" >> $ logfilereTurnpip -n $ {kondor_ip} << _ endUser $ {ftp_username} $ {ftp_password} Ascprompt $ filenamecho_endech "date +% y-% M-% d ''% h:% m:% s` a envoyé un fichier $ {filepath} / $ {nom de fichier} "echo" date +% y-% m-% d '% h:% m:% s` Envoyer le fichier $ {filepath} / $ {nom de fichier} / n ">> $ logfile
La méthode d'appel est:
Javashellutil javashellutil = new javashellutil (); javashellutil.execuShell ("" sh /tmp/sendkondorfile.sh / temp tmp.pdf ");
On espère que cet article est utile à la conception du programme Java de tous.