2014-10-10 3 views
0

Java 프로그램을 작성 중이며 DOS 배치 스크립트에서 호출하고 있습니다. (스윙 기반 GUI 응용 프로그램입니다) 호출하는 DOS 스크립트에서 Java 프로그램의 출력을 얻고 싶습니다. (== "loggedin을"%의 var에 %) (도스 스크립트)Java - 프로그램에서 출력 받기 ... 명령 줄 인수?

같은 을

자바 MYPROG var에

경우를 - 나는 명령 줄 인수의 사용을 통해이 정보를 얻을 계획입니다 {

은}

VAR는 MYPROG의 출력으로 채워 예정이다. Java 프로그램 myProg는 값 args [0] (var)를 설정해야하며 제어가 DOS 스크립트로 되돌아 오면이 값이 기억 될 것이라고 가정합니다. 이것이 가능합니까? 유스 케이스를 어떻게 구현할 수 있습니까? 어떤 옵션이 있습니까? myProg에서 호출 DOS 배치 스크립트에 플래그 ("loggedin")를 전달하려면 어떻게해야합니까?

답변

0

편집 : DOS 명령 "파이프"를 사용하려고하면

Command1 | Command2 

출력 (예 :에서 System.out.println()) 다음 Command1 명령 다음 Command1의 Command2를 의 입력 인수 될 것이다 which java app를 실행합니다 Command2는 args를 % 1, % 2 (으)로 처리하는 배치 파일입니다.

+0

내 Java 프로그램과 스크립트에서 var의 값이 채워질 때까지 기다릴 수있는 절전 명령을 가질 수 있습니다 (var에 값이 채워지는 경우) – user4127664

+0

작동해야합니다. .. 고맙다. .. 시험해주세요. – user4127664

+0

파이프가 작동했습니다. 감사합니다 – user4127664

0

명령 줄 인수는 수정할 수 없습니다. 그들은 리터럴입니다. 당신이 할 수있는 유일한 일은 stdout 또는 stderr (yelliver가 제안한대로)로 텍스트 출력을하거나, 환경 변수를 설정하거나, 어떤 종류의 로그 파일에 쓰거나, 종료 코드를 반환하는 것입니다.

+0

... 종료 코드 .. 이것은 나를 위해 트릭을했습니다. 고맙습니다. 필자가 원했던 것은 호출하는 일괄 처리 스크립트에 플래그 (표시기)를 전달하는 것이 었으므로이 작업을 수행했습니다. – user4127664

+0

Java 프로그램이 실행 중일 때 종료 코드 대신 파이프 (파이프 라인)로 전달되도록이 플래그가 필요했습니다. | 나를 위해 적절한 선택을했다. myProg에 System.out.print ("mystring") 문이 있습니다. java myProg | "mystring"을 찾습니다 echo "errorlevel" echo는 문자열이 출력에서 ​​발견되는지 여부를 알려줍니다. 감사합니다. – user4127664

0

"MYPROG의 출력과 VAR을 채우는"하는 방법 (도스 스크립트)이 있습니다 :

for /F "delims=" %%a in ('java myProg') do set "var=%%a" 

자바 프로그램이 "출력"당신이 원하는 값이 VAR에 할당되어야하는 것으로, 즉, 화면에 값을 표시해야합니다 (Stdout을 통해).