2012-07-06 4 views
0

프로젝트에서 저는 Apache Karaf의 자동 빌드 시스템을 설정하려고합니다. (새로운 설치로 작업 환경을 설정하기 위해 Karaf에서 실행해야하는 몇 가지 명령이 있습니다.) Karaf는 여러 매개 변수를 설정하고 실제 Java 프로그램을 호출하는 배치/스크립트 파일을 포함합니다. 본질적으로, 나는 다음과 같이 할 수 있기를 바란다 :Java 프로그램으로 리디렉션 하시겠습니까?

java MyProgramClass.class < commandTextFile.txt 

그러나 나는 이것을 시도 할 때 아무 것도하지 않는다. 내 목표는 단순히 karaf.bat 파일을 복사하여 (아래와 같이) 약간 수정하여 "karaf-install.bat"을 실행하면됩니다. 내가 karaf.bat의 수정 한 부분은 아래에, 그리고 내가했던 모든 말에 < "C:\commandFile.txt을 추가 할 것입니다 (다음은 모든 읽기 쉽도록 깨진 한 줄에) :

"%JAVA%" %JAVA_OPTS% %OPTS% -classpath "%CLASSPATH%" 
    -Djava.endorsed.dirs="%JAVA_HOME%\jre\lib\endorsed;%JAVA_HOME%\lib\endorsed;%KARAF_HOME%\lib\endorsed" 
    -Djava.ext.dirs="%JAVA_HOME%\jre\lib\ext;%JAVA_HOME%\lib\ext;%KARAF_HOME%\lib\ext" 
    -Dkaraf.instances="%KARAF_HOME%\instances" -Dkaraf.home="%KARAF_HOME%" 
    -Dkaraf.base="%KARAF_BASE%" -Dkaraf.data="%KARAF_DATA%" 
    -Djava.util.logging.config.file="%KARAF_BASE%\etc\java.util.logging.properties" 
    %KARAF_OPTS% %MAIN% %ARGS% < "C:\commandFile.txt" 

그러나, Karaf 쇼 아무것도. 정상적으로 실행 한 것처럼 실행됩니다. 내 명령은 실행되지 않습니다. 콘솔에서 java 프로그램을 INTO로 리디렉션 할 수 있습니까? 내가 잘못하고있는거야?

이것이 가치있는 일이라면 결국 Windows와 OS X 모두에서 수행 될 것이지만 지금은 Windows에 집중하고 있습니다.

업데이트 :는이 OS X에 나를 위해 작동하는 것 같다 밝혀 : ("명령을 찾을 수 없습니다"라는 의해 Karaf이 투쟁(),하지만 난 그게이 모든 것을 초기화되기 전에 명령을 받고 있기 때문에 그것은 생각)하지만, Windows는 여전히 명령을받지 못합니다. 나는 더 많이 찌른다.

+0

왜 승인 된 디렉토리를 망칠 필요가 있습니까? –

+0

@ Thorbjørn Ravn Andersen : 당신이 무엇을 의미하는지 모르겠습니다 ... – Cornstalks

+0

Ext.dir and endorsed.dir. 이것은 일반적으로 필요하지 않습니다 –

답변

0

나는이 문제를 카라프 이상한 것으로 써서 OS X에서 작동하는 것으로보고있다. 나는 카라프와 함께 제공되는 client 프로그램을 사용하여이 문제를 해결할 수 있었다. 의 .sh 파일) :

"$KARAF/bin/client" "karaf_command_here" 

또는 (

call "%KARAF%\bin\client.bat" "karaf_command_here" 

)는 .bat 파일에서 Windows에서 대신 Karaf로 파이프에 명령 목록을 갖는, 난 그냥 명령 a의 목록을 만들어 쉘/일괄 스크립트 파일은 각 명령에 대해 Karaf의 client을 호출합니다. 내가 좋아할만큼 예쁜 것은 아니지만 일이 끝났습니다.

start (그리고 stop으로 닫음)과 함께 사용하기 전에 Karaf를 시작해야합니다.

1

INTO 배관시 System.in에서 읽을 수 있습니다.

InputStream이 아닌 Reader입니다.

+0

Java 프로그램을 수정하고 있지 않습니다. 대신, 대화 형이며 명령 줄을 통해 사용자로부터 입력을받는 이미 존재하는 Java 프로그램입니다. 내가하려는 것은 자동으로 명령을 제공하는 것입니다. – Cornstalks

+0

CMD.EXE 창에서 사용자 입력을 읽지 않는 한이 작업을 수행 할 수 없습니다. 프로그램이 시작시 명령 파일을 읽는 플래그를 지원하면 설명서를보십시오. –

+0

명령 프롬프트에서 입력을 읽습니다. "이것은 대화 형이며 명령 줄을 통해 사용자로부터 입력을받는 이미 존재하는 Java 프로그램입니다." – Cornstalks

관련 문제