2015-01-29 3 views
1

IO 용으로 명령 행을 사용하는 C++ 프로그램이 있습니다. C++을 모르거나 프로그램의 소스 코드를 가지고 있지 않습니다. 내 Java 응용 프로그램에서 C++ 프로그램을 열고, 일부 입력을 제공하고 C++ 코드에서 결과를 수집하려고합니다. 방법이 있습니까?java가 C++ 프로그램과 통신하도록하십시오.

업데이트 : 런타임시 입력을 입력해야합니다.

+1

프로그램을 열면 문제가 발생하지 않습니다. 입력을 제공하는 것은 입력이 실행 인수 또는 표준 입력에서 읽히는 지 여부에 따라 다릅니다. 파일 또는 표준 출력에 쓰여지는지 여부는 읽기 출력에 따라 다릅니다. 구체적인 해결책을 위해, 탄원은 세부 사항을 더 제공합니다. – Krever

+2

당신은'ProcessBuilder'와 관련된 클래스들을 찾고 있습니다. – immibis

+0

@Krever 프로그램의 다운로드 작업에 대한 링크를 제공합니까? – dark32

답변

1

당신은 예를 들어 java.lang.Runtime

를 사용할 수 있습니다

public class TestRuntime { 
     public static void main(String[] args) { 
      try { 
       Process p = Runtime.getRuntime().exec("test.bat"); 
       // test.bat or test.sh in linux is script with command to run (c++) program 
       // or direct path to application's exec 
       BufferedReader in = new BufferedReader(
            new InputStreamReader(p.getInputStream())); 
       String line = null; 
       while ((line = in.readLine()) != null) { 
        System.out.println(line); 
       } 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 
    } 

또한, 당신은 this topic에서 런타임 및 ProcessBuilder를 차이에 대해 읽을 수 있습니다.

+0

감사합니다.하지만 입력 문제를 해결할 수도 있다면 더 좋을 것이라고 생각합니다. :-) – dark32

+0

>> 약간 입력하십시오. 런타임에 매개 변수를 C++ 프로그램에 전달하는 것은 문제가되지 않습니다. 그냥 exec에 매개 변수로 추가하십시오. 또는 런타임에 입력을 의미합니까? – Vitaly

+0

예, 비탈리 : – dark32