2012-05-05 7 views
2

졸업장 신청서를 작성했으며 특정 시점에 Java 소스 파일에서 배치 파일을 실행해야합니다. 문제는 그 배치 파일을 실행할 때마다 "이 명령을 처리 할 수있는 저장소가 부족합니다"라는 오류가 발생한다는 것입니다.Cmd 오류 - 저장소가 부족하여이 명령을 처리 할 수 ​​없습니다.

이 배치 파일은 cvs 로그 명령을 실행합니다. cmd에서 직접 명령을 실행하면 모든 것이 잘되지만이 명령이 포함 된 배치 파일을 실행하려고하면 오류가 발생합니다. (

이 예제를 배치 파일 실행에 사용합니다.

, cmd를 문자열이 같다
// -------------- 
Process process = Runtime.getRuntime().exec(cmd); 
process.waitFor(); 
// -------------- 

은 :.? "cmd를 시작/c는 \"\ "absolute_path_of_batch_file"

는 는

사람은 내가이 문제를 해결 그리고이 오류가 정확히 무엇을 할 수있는 방법을 알고 있습니까 주셔서 감사합니다? !

+0

아마도 메모리가 부족하여 동시에 Java 응용 프로그램이 실행됩니다. -Xmx를 사용하여 Java 힙을 낮추십시오. 그냥 간단한 추측이지만 cmd를 혼자서 할 수 있다고 말하면 작동 할 수도 있습니다. –

+0

alain.janinm : 나는 이것을 시도했지만 효과가 없었습니다. 다른 제안? 감사합니다. – stormhold

+0

죄송합니다. 다른 아이디어가 없습니다. 그것은 아마도 윈도우 메모리 관리와 관련이 있고 나는 리눅스 사용자이기 때문에 당신에게 말하기가 어렵다. 나는 당신이 제대로 질문을 다시 붙였다. –

답변

1

java에서 실행하면 자체 프로세스에서 명령이 실행됩니다. 명령 행에서 명령을 실행 한 것과 정확히 같아야합니다. 다른 점은 배치 파일을 실행하는 디렉토리 (또는 환경 변수)입니다. 배치 파일에 상대 경로가 있습니까?

그렇지 않으면 cmd 문자열에서 sysout을 수행하고 cmd 터미널에서 해당 문자열을 정확하게 실행하고 올바르게 작동하는지 확인하십시오. 또한 정확한 오류를 게시합니다.

+0

Hill : 배치 파일에 상대 경로가 없습니다. 배치 파일은 매우 간단합니다. 두 개의 입력 매개 변수 (디렉토리 - cvs log 명령이 실행되는 곳과 출력 파일 - cvs log 명령의 출력이 전달되는 곳)를 얻습니다. 다음과 같습니다. * CD % 1 cvs log> % 2 *. 두 args의 경로는 절대 경로입니다! – stormhold

+0

힐 : '더 잘 이해할 수있게 해줘 .' [여기를 클릭하십시오] (http://img850.imageshack.us/img850/1839/57116084.jpg) (나는 이것을 할 수있게되기를 희망합니다.). 그림의 왼쪽 부분에서 Java 소스의 배치 파일을 실행하여 생성 된 출력을 볼 수 있습니다. 화면의 오른쪽 부분에서 cmd 프롬프트에서 명령을 직접 실행하는 출력을 볼 수 있습니다. ** 출력은 동일하지만 메시지 **가 표시됨을 알 수 있습니다. – stormhold

+0

'java -Xmx4G '를 사용하여 프로그램을 실행 해보고 이것이 작동하는지 확인하십시오. –

관련 문제