자바 linux 의 셸 스 크 립 트 호출
package cn.com.songjy.test.shell;
import java.io.BufferedReader;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
//http://kongcodecenter.iteye.com/blog/1231177
// http://siye1982.iteye.com/blog/592405
// http://blog.csdn.net/christophe2008/article/details/6046456
public class JavaShellUtil {
//
private static final String basePath = "/root/";
// Shell ( )
private static final String executeShellLogFile = basePath
+ "executeShell.log";
// Kondor Shell ( )
private static final String sendKondorShellName = basePath
+ "songjy.sh";
public int executeShell(String shellCommand) throws IOException {
System.out.println("shellCommand:"+shellCommand);
int success = 0;
StringBuffer stringBuffer = new StringBuffer();
BufferedReader bufferedReader = null;
// ,
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:SS ");
try {
stringBuffer.append(dateFormat.format(new Date()))
.append(" Shell ").append(shellCommand)
.append(" \r
");
Process pid = null;
String[] cmd = { "/bin/sh", "-c", shellCommand };
// Shell
pid = Runtime.getRuntime().exec(cmd);
if (pid != null) {
stringBuffer.append(" :").append(pid.toString())
.append("\r
");
// bufferedReader Shell
bufferedReader = new BufferedReader(new InputStreamReader(pid.getInputStream()), 1024);
pid.waitFor();
} else {
stringBuffer.append(" pid\r
");
}
stringBuffer.append(dateFormat.format(new Date())).append(
"Shell \r
:\r
");
String line = null;
// Shell , stringBuffer
while (bufferedReader != null
&& (line = bufferedReader.readLine()) != null) {
stringBuffer.append(line).append("\r
");
}
System.out.println("stringBuffer:"+stringBuffer);
} catch (Exception ioe) {
stringBuffer.append(" Shell :\r
").append(ioe.getMessage())
.append("\r
");
} finally {
if (bufferedReader != null) {
OutputStreamWriter outputStreamWriter = null;
try {
bufferedReader.close();
// Shell
OutputStream outputStream = new FileOutputStream(executeShellLogFile);
outputStreamWriter = new OutputStreamWriter(outputStream, "UTF-8");
outputStreamWriter.write(stringBuffer.toString());
System.out.println("stringBuffer.toString():"+stringBuffer.toString());
} catch (Exception e) {
e.printStackTrace();
} finally {
outputStreamWriter.close();
}
}
success = 1;
}
return success;
}
public static void main(String[] args) {
try {
new JavaShellUtil().executeShell(sendKondorShellName);
} catch (IOException e) {
e.printStackTrace();
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.