CodeGym /Java Blog /๋ฌด์ž‘์œ„์˜ /Java์˜ System.exit()
John Squirrels
๋ ˆ๋ฒจ 41
San Francisco

Java์˜ System.exit()

๋ฌด์ž‘์œ„์˜ ๊ทธ๋ฃน์— ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค
Java์˜ System ํด๋ž˜์Šค์—๋Š” SystemOne์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ํ•„๋“œ์™€ ๋ฉ”์„œ๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ค‘ ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์ด๋‚˜ JVM ์ธ์Šคํ„ด์Šค๋ฅผ ์ข…๋ฃŒํ•ด์•ผ ํ•  ๋•Œ Java ์–ธ์–ด์—์„œ ์‚ฌ์šฉ๋˜๋Š” System.exit() ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. exit ๋ฉ”์„œ๋“œ ์•„๋ž˜์— ์‚ฝ์ž…๋œ ์ค„์€ ๋„๋‹ฌํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ์‹คํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

System.exit() ๋ฉ”์„œ๋“œ์˜ ๊ตฌ๋ฌธ

System.exit() ๋ฉ”์„œ๋“œ ์˜ ๊ตฌ๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

public void static(int status)
๋”ฐ๋ผ์„œ ์ •์  ๋ฉ”์„œ๋“œ์ž„์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ System ํด๋ž˜์Šค ์˜ ๋ชจ๋“  ๋ฉ”์„œ๋“œ๋Š” ์ •์  ๋ฉ”์„œ๋“œ์ž…๋‹ˆ๋‹ค. exit () ๋ฉ”์„œ๋“œ๋Š” ์ธ์ˆ˜๋กœ ์ •์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์•„๋ฌด ๊ฒƒ๋„ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ข…๋ฃŒ ๋ฐฉ๋ฒ•์„ System.exit(i) ๋กœ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ i๋Š” ์ •์ˆ˜์ž…๋‹ˆ๋‹ค. ์ด ์ •์ˆ˜๋ฅผ "์ข…๋ฃŒ ์ƒํƒœ"๋ผ๊ณ  ํ•˜๋ฉฐ 0์ด๊ฑฐ๋‚˜ 0์ด ์•„๋‹Œ ์š”์†Œ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒํƒœ๊ฐ€ 0์ด๋ฉด โ€” exit(0) ํ”„๋กœ๊ทธ๋žจ์ด ์„ฑ๊ณต์ ์œผ๋กœ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค. 0์ด ์•„๋‹Œ ์ƒํƒœ - exit(1)๋Š” JVM์˜ ๋น„์ •์ƒ์ ์ธ ์ข…๋ฃŒ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.Java์˜ System.exit() - 1

System.exit() ๋ฉ”์„œ๋“œ์˜ ์˜ˆ

์ƒํƒœ๊ฐ€ 0 ๋ฐ 0์ด ์•„๋‹Œ ์ •์ˆ˜์ธ exit() ๋ฉ”์„œ๋“œ ์˜ ๊ฐ„๋‹จํ•œ ๋‘ ๊ฐ€์ง€ ์˜ˆ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค . ์ฒซ ๋ฒˆ์งธ ์˜ˆ์—๋Š” ์ƒ‰์ƒ ๋ฐฐ์—ด์— ๋Œ€ํ•œ ๋ฃจํ”„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฃจํ”„๊ฐ€ "๋…น์ƒ‰"์„ ๋งŒ๋‚˜๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ข…๋ฃŒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

import java.lang.*;  
 
class Main {
  public static void main(String[] args) {
    String colors[]= {"red","blue","green","black","orange"};  
    for(int i=0;i<colors.length;i++)  {  
      System.out.println("Color is "+colors[i]);
      if(colors[i].equals("green")) {  
        System.out.println("JVM will be terminated after this line"); 
        System.exit(0); 
      }
    }  
  }
}
๋‹ค์Œ ์ถœ๋ ฅ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. Java์˜ System.exit() - 2ํ„ฐ๋ฏธ๋„์€ ์ƒํƒœ๋กœ 0์„ ์‚ฌ์šฉํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ถœ๋ ฅ์— ์ข…๋ฃŒ ์ฝ”๋“œ๋ฅผ ํ‘œ์‹œํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. 0์€ ์„ฑ๊ณต์ ์ธ ์ข…๋ฃŒ๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฏ€๋กœ ์ข…๋ฃŒ ์ฝ”๋“œ๋ฅผ ์ธ์‡„ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ์˜ˆ์ œ์—์„œ๋Š” ์–‘์˜ ์ •์ˆ˜๋ฅผ ์ƒํƒœ๋กœ ์‚ฌ์šฉํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด ์˜ˆ์ œ์—์„œ๋Š” 0๊ณผ 10 ์‚ฌ์ด์˜ ์ž„์˜์˜ ์ˆซ์ž๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฃจํ”„๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ƒ์„ฑ๋œ ์ˆซ์ž๊ฐ€ 2,3 ๋˜๋Š” 7์ธ ๊ฒฝ์šฐ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์ข…๋ฃŒํ•ด์•ผ ํ•˜๋ฉฐ ์ข…๋ฃŒ๋ฅผ ์œ ๋ฐœํ•˜๋Š” ์ˆซ์ž๋ฅผ ์ธ์‡„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

import java.lang.*;  
import java.util.Random; 
 
class Main {
  public static void main(String[] args) {
    System.out.println("program will be terminated when values are 2, 3, or 7");  
    int i;
    Random number=new Random();
    while(true){
      i = number.nextInt(11);
      System.out.println("Random Number is "+i); 
      if(i==2||i==3||i==7){
        System.out.println("Value is "+ i + " your program will be terminated now");  
        System.exit(i);
      }
    }
  }
} 
์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. Java์˜ System.exit() - 3๋ณด์‹œ๋‹ค์‹œํ”ผ 3 ๋ฒˆ์€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ๋น„์ •์ƒ ์ข…๋ฃŒ๋ฅผ ์ผ์œผ์ผฐ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์ƒํƒœ ์ฝ”๋“œ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ƒํƒœ ์ฝ”๋“œ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

์ƒํƒœ ์ฝ”๋“œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋ช…๋ น์ค„ ์ธํ„ฐํŽ˜์ด์Šค(CLI)๋ฅผ ํ†ตํ•ด Java ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•  ๋•Œ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ํ‘œ์ค€ ๋„๊ตฌ, ํ”„๋กœ๊ทธ๋žจ ๋˜๋Š” ์šด์˜ ์ฒด์ œ์™€ ํ†ต์‹ ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์ƒํƒœ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์ด ์šด์˜ ์ฒด์ œ์™€ ํ†ต์‹ ํ•˜๋„๋ก ์˜๋„๋œ ๊ฒฝ์šฐ ์šด์˜ ์ฒด์ œ ๊ณ ์œ ์˜ ์ƒํƒœ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 128์€ "์ข…๋ฃŒํ•  ์ž˜๋ชป๋œ ์ธ์ˆ˜"๋ฅผ ์„ค๋ช…ํ•˜๋Š” UNIX์˜ ํ‘œ์ค€ ์ƒํƒœ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

System.exit ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ

System.exit ์˜ ์ผ๋ฐ˜์ ์ธ ์‚ฌ์šฉ๋ฒ• ์ค‘ ํ•˜๋‚˜ ๋Š” ํ”„๋กœ๊ทธ๋žจ์— ๋น„์ •์ƒ์ ์ธ ์กฐ๊ฑด์ด ํ‘œ์‹œ๋˜๊ณ  ๋” ์ด์ƒ์˜ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ค์ง€ ์•Š๊ณ  ํ”„๋กœ๊ทธ๋žจ์„ ์ฆ‰์‹œ ์ข…๋ฃŒํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ๋˜ ๋‹ค๋ฅธ ์šฉ๋„๋Š” ๊ธฐ๋ณธ ๋ฉ”์„œ๋“œ๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์„ ์ข…๋ฃŒํ•ด์•ผ ํ•˜๋Š” ์š”๊ตฌ ์‚ฌํ•ญ์ด ์žˆ๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. Java์—๋Š” "Shut Down Hooks"๋ผ๋Š” ํŠน์ˆ˜ ๊ตฌ์กฐ๊ฐ€ ์žˆ์–ด ๊ฐœ๋ฐœ์ž๊ฐ€ JVM์ด ์ข…๋ฃŒ๋˜๊ธฐ ์ „์— ์‹คํ–‰ํ•ด์•ผ ํ•˜๋Š” ์ฝ”๋“œ ์Šค๋‹ˆํŽซ์„ ํ”Œ๋Ÿฌ๊ทธ์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ •๋ฆฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ํŠนํžˆ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. System.exit ๋ฉ”์„œ๋“œ๋Š” ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ ์ข…๋ฃŒ ํ›„ํฌ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค .

๊ฒฐ๋ก 

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” System.exit() ๋ฉ”์†Œ๋“œ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค. System.exit ๋Š” Java์—์„œ JVM์„ ์ข…๋ฃŒํ•˜๋Š” ๋ฐฉ๋ฒ•์ž„์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. System.exit ๋ฉ”์„œ๋“œ๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด exit() ๋ฉ”์„œ๋“œ ์•„๋ž˜์— ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ฌด ๊ฒƒ๋„ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค . ๋˜ํ•œ exit() ๋ฉ”์„œ๋“œ ์˜ ์‹ค์ œ ์‚ฌ์šฉ์— ๋Œ€ํ•ด์„œ๋„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค . ๊ทธ๋Ÿฌ๋‚˜ Java ์ปค๋ฎค๋‹ˆํ‹ฐ๋Š” ๋‹ค๋ฅธ ์˜ต์…˜์ด ์žˆ๋Š” ํ•œ ์ข…๋ฃŒ ๋ฐฉ๋ฒ•์˜ ์‚ฌ์šฉ์„ ๊ถŒ์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION