이 기사의 예는 Java의 쉘 명령을 호출하는 방법을 알려줍니다. 참조를 위해 모든 사람을 위해 공유하십시오. 세부 사항은 다음과 같습니다.
최근 프로젝트에는 이러한 수요가 있습니다. 시스템에서 외화 예약이 완료된 후에는 TXT 파일을 생성하기 위해 예약 정보를 생성 한 다음이 txt 파일이 다른 시스템 (Kondor)으로 전송됩니다. 생성 파일은 자연스럽게 outputStreamWirter를 사용합니다. 하나는 FTP 기능과 유사한 프로그램을 작성하는 것입니다. 우리는 후자, 즉 외화 자금을 예약 한 후 Java의 OutputStreamWriter를 사용하여 TXT 파일을 생성 한 다음 Java를 사용하여 쉘 스크립트를 호출하고 FTP 파일에서 쉘 스크립트의 Kondor 시스템으로 작업을 완료합니다. .
다음은 Java 프로그램 javashellutil.java입니다.
Java.io.file java.inputsprestrem; dateformat; 정적 최종 문자열 executeshelllogfile = basepath + "executeshell.log"; IoExcept {int success = 0; .append (dateformat.format (새 날짜)) = "/bin/sh", "-c", shellcommand}; 숫자 : "). Append (pid.toString ()). Append ("/r/n "); // BufferedReader는 Shell BufferedReader의 출력 내용을 읽는 데 사용됩니다. ); /r/n 결과 실행 결과 :/r/n "); String line = null; // 쉘의 출력 내용을 읽고 전체에 추가 {null) {StringBuffer.append (line) .appnd ( "/r/n");}} catch (예외 ioe) {StringBuffer.append ( "":: // r/n "). getMessage ()). FileoutputStream (ExecutesHellllogFile); outputStreamwriter = outputStream, "UTF-8"; );}} 성공 = 1;} 반환 성공;}}}}
다음은 쉘 스크립트 SendKondorFile.sh입니다.
#!/bin/sh#logfile = "/opt/fms2_kondor/sendkondorfile.log"#kondor 시스템, 생성 된 파일은이 주소로 생성됩니다. kondor_ip = 192.168.1.200#ftp_username = kondor#ftp password ftp_password = Kondor#절대 경로#절대 경로# 전송 될 파일, 전송 될 파일의 절대 경로, FilePath = "# 두 번째 매개 변수는 filenameif [$# -ge"1 "]에 제공됩니다. /n ">> $ logfilereturnfiif [$# -e"2 "] thefilenamecho"파일 이름 없음 "없음"없음 ">> 파일 이름 없음/n">> $ logfilereturnfiecho "전송 될 파일은 $ {filepath}/$ {filename}입니다. "cd $ {filepath} ls $ filenameif (test $? -eq 0) thecho"파일을 보내 준비 : $ {filepath}/$ {filename} "elseecho"file $ {filepath}/$ {fieldame}가 존재하지 않는다 " echo "file $ {filepath}/$ {filename}은 존재하지 않습니다/n">> $ logfilereturnpip -n $ {kondor_ip} << _ enduser $ {ftp_username} $ {ftp_password} ascprompsput $ filenamecho_endecho "날짜 +%y -% m-%d ''%h :%m :%s` 파일을 보냈습니다 $ {filepath}/$ {filename} "echo"날짜 +%y-%m-%d '%h :%m :%s` 파일 $ {filepath}/$ {filename}/n ">> $ logfile을 보내십시오
통화 방법은 다음과 같습니다.
javashellutil javashellutil = 새로운 javashellutil (); javashellutil.executeshell ( ""sh /tmp/sendkondorfile.sh /temp tmp.pdf ");
이 기사는 모든 사람의 Java 프로그램 설계에 도움이되기를 바랍니다.