2
JAVA 프로그램에서 실행되는 쉘/bash 스크립트의 출력을 얻으려고합니다. 많은 행운이 없습니다. 코드는 다음과 같습니다.JAVA에서 bash 스크립트를 실행하고 결과를 리턴하십시오.
GetStats(winhostname);
public static String winhostname "cmd /c hostname";
public static void GetStats(String operation)
{
try
{
Process p=Runtime.getRuntime().exec(operation);
p.waitFor();
BufferedReader reader=new BufferedReader(new InputStreamReader(p.getInputStream()));
String line=reader.readLine();
while(line!=null)
{
System.out.println(line);
if (operation.equals("winhostname"))
{
winhostnamevalue = line;
}
line=reader.readLine();
}
}
catch(IOException e1) {}
catch(InterruptedException e2) {}
}
이것은 Windows에서 정상적으로 작동하므로 winhostname 값을 "sh namecheck.sh"(호스트 이름을 간단하게 에코)로 변경하고 쉘 스크립트는 java/class 파일과 같은 디렉토리에 있습니다. 실행하면 빈 결과를 얻지 만 null이 아니라 공백이됩니다.
Windows에서 bash 쉘을 실행하려고합니까? – hvgotcodes
@hvgotcodes 나는 희망하지 않을 것이다 : P – Mike
당신의 유닉스 프로세스에 대한 stderr를 유지하려고 시도한다 - 그것은 올바른 방향으로 당신을 가리킬 것이다 - Process # getErrorStream()을 보라. – DaveH