C++ (부스트 라이브러리 사용)로 작성되고 xcode로 컴파일 된 콘솔 응용 프로그램이 있습니다.이 유닉스 실행 파일은 데몬과 통신하고 특정 작업을 수행합니다. 이 콘솔 응용 프로그램을 모든 인수와 함께 명령 줄에서 실행하면 완벽하게 작동합니다. 하지만 Java 코드에서이 콘솔 응용 프로그램을 호출 할 때 실행되지 않습니다. ProcessBuilder
을 사용하고 있습니다. 동일한 코드를 사용하여 시스템 관련 명령을 실행할 수 있습니다. 내가 사용하고있는 콘솔 어플리케이션은 정적 라이브러리에 의존한다. - 1.7, 맥 OSX - 10.7.5, 엑스 코드 - 4.6.2, 부스트 버전 - 1.53.0 JDK : 다음MAC OSX에서 Unix 실행 파일을 실행할 수 없습니다
는의 사용하고있는 사양입니다. 내가 사용하고
코드 :
String str[] = {"/bin/sh", "-c" ,"/Users/user/Downloads/cppapplication_1"};
ProcessBuilder builder = new ProcessBuilder(str);
builder.directory(new File("/Users/user/Downloads/"));
final Process process = builder.start();
process.waitFor();
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
그것의 어떤 오류를 던지고 없습니다. 그 교수형.
도움을 주시면 감사하겠습니다.
사용중인 정확한 명령은 무엇입니까? 'ProcessBuilder'를 사용하는 방법의 샘플 코드. 어떤 예외가 있습니까? 사실 우리가 스스로 명령을 실행할 수 없다는 사실을 감안할 때, 문제에 대한 더 많은 정보를 제공해야하고 원격으로도 도움을 줄 수 있어야합니다. – MadProgrammer
오류 스트림도 함께 사용해야합니다. –