평소와 같이 명령 줄에서 프로그램을 시작합니다. (즉 자바 myprogram)프로그램 실행시 입력 받기
그러나 나는 그것이
java myprogram configfile.txt
그래서이 문자열을 받아 나중에 코드에서 내가 파일을로드하는 데 사용할 수 있습니다 입력하는 것이 가능 알고있다.
가능한 경우 생성자와 같은 것을 사용하여 프로그램에서이 입력을 어떻게 캡처합니까?
평소와 같이 명령 줄에서 프로그램을 시작합니다. (즉 자바 myprogram)프로그램 실행시 입력 받기
그러나 나는 그것이
java myprogram configfile.txt
그래서이 문자열을 받아 나중에 코드에서 내가 파일을로드하는 데 사용할 수 있습니다 입력하는 것이 가능 알고있다.
가능한 경우 생성자와 같은 것을 사용하여 프로그램에서이 입력을 어떻게 캡처합니까?
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 }
내 등을 돌봐 주셔서 감사합니다. – csmckelvey
인수가 전달되었는지 확인하려면 어떻게해야합니까? if 문을 수행하면이 예외가 throw됩니다. if (args [0]! = null) { \t \t \t filename = args [0]; \t \t \t} – chostwales
답변에 추가 할 것입니다. – csmckelvey
Java 명령 행 입력을 검색 한 적이 있습니까? –
가능한 [Java 명령 줄 인수] 복제본 (http://stackoverflow.com/questions/716153/java-command-line-arguments) –