2012-11-29 2 views
1

여기서 작업하는 동안 나는 다소 특이한 문제에 부딪 혔습니다. 이 동작에 대해 매우 간단한 설명이있을 수 있지만 나에게는별로 의미가 없습니다. 나는 그 "TEST.BAT"배치 파일을 작성 "scala"명령은 일괄 처리 스크립트를 종료합니다.

는 지금, 다음과 같습니다 : 여기

상황이다

echo 1 
scala myProgram 
echo 2 

나는 따라 디렉토리 및 실행에서 명령 프롬프트를 열 때 test.bat는 1로 에코를 시작한 다음 myProgram (콘솔에 표시되는 특정 출력이 있으므로 myProgram이 제대로 작동 함)을 실행 한 다음 중지합니다. 2는 이 아니며이 콘솔에 나타나고 콘솔에서 다른 명령을 입력 할 때까지 기다립니다.

왜이 동작입니까? 콘솔의 오작동입니까? 스칼라 명령이나? 아니면 전혀 오작동이 아니며 실제로 그런 식으로 행동하기위한 것입니까?

"scala myProgram"의 출력을 스칼라 프로그램이 끝난 후 파일로 리디렉션하고 스칼라 프로그램이 종료 된 후이 파일의 이름을 바꾸는 것이므로 내 배치 파일은 다소 원래 다음과 같이 보입니다.

scala myProgram > log.txt 2>&1 
ren "log.txt" "log2.txt" 

"log2.txt"가 생성되지 않았다는 사실에 혼란 스러웠습니다.

귀하의 답변에 크게 감사드립니다.

+0

스칼라 프로그램이 실제로 종료합니까? –

+0

스칼라 프로그램은 단순히 "scala myProgram"을 호출 할 때 자동으로 실행되는 main 함수를 포함하는 클래스입니다. 이 main 함수의 마지막 명령은 println이며 콘솔에 의도 한대로 나타납니다. – user1860041

+0

사용중인 스칼라 코드를 제공해 주시겠습니까? 또는 다음과 같이 간단하게 다시 시도하십시오. 'object myProgram extends App { println ("hello stackoverflow") } – Mellson

답변

0

스칼라 명령에 -nc은 나를 위해 일 추가 :

$ scala -nc /tmp/2.scala 
    Hello world 

그래서 것 같아요, 문제가 컴파일 데몬

-nc   no compilation daemon: do not use the fsc offline compiler 

당신이 시도 할 수와 함께 할 수있는 뭔가가?