Contoh artikel ini menceritakan metode memanggil perintah shell Java. Bagikan untuk semua orang untuk referensi Anda. Spesifiknya adalah sebagai berikut:
Baru -baru ini, ada permintaan seperti itu dalam proyek: Setelah penjadwalan dana mata uang asing dalam sistem selesai, informasi penjadwalan harus dihasilkan untuk menghasilkan file txt, dan kemudian file txt ini dikirim ke sistem lain (Kondor). File yang menghasilkan secara alami menggunakan outputStreamWirter. Kami memilih yang terakhir, yaitu, setelah penjadwalan dana mata uang asing, menggunakan Java's OutputStreamWriter untuk menghasilkan file txt, dan kemudian menggunakan Java untuk memanggil skrip shell dan menyelesaikan pekerjaan dari file FTP ke sistem Kondor dalam skrip shell di shell .
Berikut ini adalah program Java javashellutil.java:
Impor. DateFormat; Static String ExecuteShellLogFile = Basepath + "Executeshell.log"; Melempar IoException {int Success = 0; .Perpendir (DateFormat.Format (Tanggal baru ()) = {"/bin/sh", "-c", shellCommand}; Nomor: "). Append (pid.tostring ()). append ("/r/n "); // bufferedreader digunakan untuk membaca konten output shell bufferedReader = baru bufferedreader (streamReader inputer baru (pid.getinputstream () ), 1024); /r/n menjalankan hasil:/r/n "); string line = null; // Baca konten output shell dan tambahkan ke keseluruhan (bufferedReader! = nufferedReader! = null && (line = bufferedreader.readline ())) ! GetMessage ()). FileOutputStream (ExecuteShellLlogFile); );}} Sukses = 1;} return Success;}}}}
Berikut ini adalah skrip shell sendkondorfile.sh.
#!/bin/sh#Logfile = "/OPT/FMS2_KONDOR/Sendkondorfile.log" #Kondor system, the generated file generates to this address Kondor_ip = 192.168.1.200#FTP_UserName = Kondor#ftp password ftp_password = Kondor#The absolute path of File yang akan dikirim, jalur absolut dari file yang akan dikirim, filepath = "# parameter kedua diberikan kepada filenameif [$# -ge" 1 "] thenfilePath = $ 1lSeecho" tidak ada jalur file "echo" tanpa file file file /n ">> $ logfilereturnfiif [$# -e" 2 "] thenfilenamecho" Tidak ada nama file "echo" tanpa nama file/n ">> $ logfilereturnfiecho" file yang akan dikirim adalah $ {filepath}/$ {filename} " "CD $ {FilePath} ls $ filenameif (test $? -Eq 0) thencho" Ready To Lipt file: $ {filepath}/$ {filename} "elseCho" file $ {filepath}/$ {fieldame} tidak ada " echo "file $ {filePath}/$ {filename} tidak ada/n" >> $ logfilereturnpip -n $ {Kondor_IP} << _ enduser $ {ftp_username} $ {ftp_password} ascprompput $ filenamecho {ftp_password} ascprompput $ fileneCecho {ftp_password}%$ {ftp $ {ftp_password $ M-%d ''%h:%m:%s` mengirim file $ {filepath}/$ {fileName} "echo" tanggal +%y-%m-%d '%h:%m:%s` Kirim File $ {FilePath}/$ {FileName}/n ">> $ LogFile
Metode panggilan adalah:
Javashellutil javashellutil = javashellutil () baru; javashellutil.executeshell ("" sh /tmp/sendkondorfile.sh /temp tmp.pdf ");
Diharapkan bahwa artikel ini bermanfaat untuk desain program Java semua orang.