args๋ก cmd / argument์์ args์ ๊ฐ์ด ์ ๋ ฅ๋์ง ์์์ ๋ ์์ธ์ฒ๋ฆฌ๋ฅผ ํด์ฃผ๊ณ ์ถ์ด ์๋์ ๊ฐ์ ๋ฌธ๋ฒ์ ์์ฑํ๋ค.
//Initial Code
String name = args[0];
if(args[0] == null || args[0] == " ") {
System.out.println("Please input Username\nex)java Main User_name");
}
System.out.println("Hello User "+name);
ํ์ง๋ง args[0]์ ์ด๊ธฐ๊ฐ์ด ์ ๋ ฅ๋์ง ์์์ ๋ ๋ค์๊ณผ ๊ฐ์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
์ ์๋ฌ๋ฉ์์ง๋ฅผ ์ฝ์ด๋ณด๊ณ , Index 0๋ฒ์งธ๊ฐ length 0๊ณผ ๊ฒฐ์๋์ง์์๋ค(?) ์ ๋๋ก ํด์ํด๋ณด์๋ค.
์ฌ๋ฌ๊ฐ์ง ์๋ฃ๋ฅผ ์ฐพ์๋ณด๋ฉด์ ์๊ฒ ๋ ๊ฒ์ธ๋ฐ ์๋ ์์ ์ if๋ฌธ์์์ ์กฐ๊ฑด๋ฌธ์ ์ง์คํด๋ณด์.
// Reference document's Code
String file = "test1.xml";
if (args.length > 0) {
file = args[0];
}
if๋ฌธ ๋ด๋ถ์ ์กฐ๊ฑด๋ฌธ์ ๋ณด๋ฉด args.length๊ฐ 0๋ณด๋ค ํด ๋ ์ฐธ์ด๋ฉฐ ์ด ๋ ์๋ ์ฝ๋๊ฐ ์คํ๋๋ค.
์ ์์๋ก๋ถํฐ ์ ์ ์๋ค์ํผ ์ฌ์ฉ์๋ก๋ถํฐ argument๋ก ์ด๋ ํ ์ ๋ ฅ๋ ์ฃผ์ด์ง์ง ์์์ ๋ ๊ธธ์ด๊ฐ 0 (๋ฐ์ดํฐ๊ฐ ์์)์์ ์ ์ ์๋ค.
๋ฐ๋ผ์ args๋ก ์๋ฌด๋ฐ ๊ฐ์ด ๋ค์ด์ค์ง ์์์ ๋๋
// Fixed Code
public static void main(String[] args) {
if(!(args.length > 0)) {
System.out.println("Please input Username\nex)java Main User_name");
return;
}
String name = args[0];
์ด๋ ๊ฒ ์์ฑํด์ผํ๋ค.
C์ธ์ด์ ๋๋ฌด ์ต์ํด์ ธ์์ด์ ๊ทธ๋ฐ์ง ์ด๋ค ๊ฐ์ด๋ ์ด๊ธฐ๊ฐ์ NULL ํน์ ์ด๋ค ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๊ฐ์ด๋ผ๊ณ ์ดํดํ๊ณ ์์๋ค.
๋ํ C์ธ์ด์์์ args[0]๊ฐ์๋ ํ๋ก๊ทธ๋จ์ ์คํ ๊ฒฝ๋ก๊ฐ ๋ค์ด๊ฐ๊ธฐ ๋๋ฌธ์ ๋์ฑ ํผ๋์ ๊ฐ์ ธ์๋ ๊ฒ ๊ฐ๋ค.
*Reference
- https://stackoverflow.com/questions/17423257/what-exacly-args-length0-means
'๐ฌ Language > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
StringTokenizer (0) | 2020.01.18 |
---|---|
extends์ implements (0) | 2020.01.17 |
Event๋? (0) | 2020.01.11 |
GUI ํํํ๊ธฐ (0) | 2020.01.09 |
split ํจ์์ ์ ๊ทํํ์ (0) | 2020.01.08 |