O exemplo deste artigo informa o método de chamar o comando Shell de Java. Compartilhe para todos para sua referência. Os detalhes são os seguintes:
Recentemente, existe tal demanda no projeto: após a programação de fundos de moeda estrangeira no sistema, as informações de agendamento devem ser geradas para gerar um arquivo TXT e, em seguida, esse arquivo TXT é enviado para outro sistema (Kondor). O arquivo gerador usa naturalmente o outputStreamWirter. Escolhemos o último, isto é, após o agendamento de fundos de moeda estrangeira, usamos o Java's OutputStheRwriter para gerar um arquivo TXT e, em seguida, usamos o Java para chamar o script do shell e concluir o trabalho do arquivo FTP para o sistema Kondor no script do shell .
A seguir, o programa Java JavaShellutil.java:
Importação DateFormat; Final String estático ExecuteshellLogFile = Basepath + "Executeshell.log"; Lança ioexception {int sucem = 0; .Append (DateFormat.Format (New Date ())) = {"/bin/sh", "-C", shellCommand}; Número: "). Append (pid.toString ()). Append ("/r/n "); // BufferErader é usado para ler o conteúdo de saída do shell buffaredreader = new BufferReader (novo entrada de entrada (pid.getinptStream () ), 1024); /r/n Execute resultados:/r/n "); linha de string = null; // Leia o conteúdo de saída do shell e adicione ao inteiro (BufferErader! = NufferedReader! = null && (linha = bufferreader.readline ()) ! GetMessage ()). FileOutputStream (ExecuteshelllLogfile); );}} Sucesso = 1;} retornar sucesso;}}}}
A seguir, o shell script sendkondorfile.sh.
#!/bin/sh#logfile = "/opt/fms2_kondor/sendkondorfile.log" #Kondor System, o arquivo gerado gera para este endereço kondor_ip = 192.168.1.200#ftp_username = kondor#ftp senha ftp_pord = konds#kond# O arquivo a ser enviado, o caminho absoluto do arquivo a ser enviado, filepath = "# o segundo parâmetro é dado ao FileNameif [$# -ge" 1 "] thenfilepath = $ 1lseecho" sem caminho do arquivo "eco" sem caminho do arquivo /n ">> $ logfileReTurnfiif [$# -e" 2 "] thenfilenamecho" sem nome de arquivo "echo" sem nome de arquivo/n ">> $ logfileReTurnfiecho" o arquivo a ser enviado é $ {filepath}/$ {filename} "CD $ {filepath} ls $ FILENAMEIF (TEST $? -EQ 0) THENCHO" Pronto para enviar arquivos: $ {FilePath}/$ {FileName} "elseecho" arquivo $ {FilePath}/$ {fieldame} não existe " echo "arquivo $ {filepath}/$ {filename} não existe/n" >> $ logFileReTurnpip -n $ {kondor_ip} << _ enduser $ {ftp_username} $ {ftp_password} ascompomput $ filenamecho_endecho " M-%d ''%h:%m:%s` enviou um arquivo $ {filepath}/$ {filename} "eco" data +%y-%m-%d '%h:%m:%s` Enviar arquivo $ {filepath}/$ {filename}/n ">> $ logfile
O método de chamada é:
Javashelutil javashellutil = new javashellutil (); javaShellutil.executeshell ("" sh /tmp/sendkondorfile.sh /temp tmp.pdf ");
Espera -se que este artigo seja útil para o design do programa Java de todos.