2014-11-24 4 views
0

평소와 같이 명령 줄에서 프로그램을 시작합니다. (즉 자바 myprogram)프로그램 실행시 입력 받기

그러나 나는 그것이

java myprogram configfile.txt 

그래서이 문자열을 받아 나중에 코드에서 내가 파일을로드하는 데 사용할 수 있습니다 입력하는 것이 가능 알고있다.

가능한 경우 생성자와 같은 것을 사용하여 프로그램에서이 입력을 어떻게 캡처합니까?

+4

Java 명령 행 입력을 검색 한 적이 있습니까? –

+0

가능한 [Java 명령 줄 인수] 복제본 (http://stackoverflow.com/questions/716153/java-command-line-arguments) –

답변

5
public static void main(String[] args) { ... } 

args 배열 명령 행 파라미터를 포함한다. 귀하의 예제에서 파일 이름은 args[0]입니다. 그러나 코드에 args[0]을 하드 코딩하고 매개 변수를 전달하지 않으면 args[0]이 없으므로 ArrayIndexOutOfBoundsException이 표시됩니다.

필요한 경우 여러 매개 변수를 포함하도록 확장 할 수 있습니다. 예를

java myprogram configfile.txt configfile2.txt configfile3.txt 

를 들어 그 파일 이름은 각각 args[0]args[1]args[2]이 될 것입니다.

당신이 배열의 길이를 확인하여 몇 가지있는 경우 또는 인수없이 실행할 수있는 프로그램이, 당신이 찾을 수있는 경우는

if (args.length > 0) { myfile = args[0]; } 
else { myFile = someDefaultFilename; } 

처럼> 0 뭔가 또는 여러 매개 변수를 가질 수있는 경우 전체 배열을 반복 할 수 있습니다.

for (String s : args) { //Do something with each parameter } 
+2

내 등을 돌봐 주셔서 감사합니다. – csmckelvey

+0

인수가 전달되었는지 확인하려면 어떻게해야합니까? if 문을 수행하면이 예외가 throw됩니다. if (args [0]! = null) { \t \t \t filename = args [0]; \t \t \t} – chostwales

+0

답변에 추가 할 것입니다. – csmckelvey