[Day 7| Java] System 클래스

y♡ding·2024년 10월 22일
0

데브코스 TIL

목록 보기
30/163

📌 java.lang.System 클래스

System 클래스는 객체를 생성할 필요 없이 바로 사용할 수 있는 static메서드들로 구성되어 있습니다.

1. 입출력 (Input/Output)

1) System.out

  • System.out표준 출력 스트림을 가리킵니다. 주로 콘솔에 출력할 때 사용됩니다.
  • 가장 자주 사용하는 메서드: System.out.println()

2) System.in

  • System.in표준 입력 스트림을 가리킵니다. 주로 키보드 입력을 처리할 때 사용됩니다.
  • 입문자들이 자주 사용하는 방식은 Scanner 클래스와 함께 사용하는 것입니다.

3) System.err

  • System.err표준 에러 스트림을 가리킵니다. 에러 메시지를 출력할 때 사용합니다.
  • System.out과 같은 방식으로 콘솔에 출력하지만, 에러 처리에 주로 사용됩니다.

2. 시스템 정보 및 종료

1) System.currentTimeMillis()

  • 이 메서드는 1970년 1월 1일 자정 이후 경과한 밀리초(ms)를 반환합니다.
  • 주로 성능 측정이나 시간 관련 작업을 할 때 사용됩니다.
public class Main {
	public static void main(String[] args) {
    
		long startTime = System.currentTimeMillis();  // 현재 시간 측정
		// 작업 실행
		long endTime = System.currentTimeMillis();
        
        System.out.println("Execution time: " + (endTime - startTime) + "ms");
	}
}

2) System.exit(int status)

  • 이 메서드는 프로그램을 종료합니다. status 값에 따라 종료 상태를 설정할 수 있습니다.
    • 0: 정상 종료
    • 0이 아닌 값: 비정상 종료
  • 프로그램이 종료될 때 JVM이 모든 리소스를 해제하고 종료됩니다.
public class Main {
	public static void main(String[] args) {
    
    System.out.println("Program will exit now.");
    System.exit(0);  // 정상 종료
    System.out.println("This line will never be printed.");  // 출력되지 않음 
    
	}
}

3. 환경 변수 및 시스템 속성

1) System.getenv(String name)

  • 이 메서드는 운영체제의 환경 변수를 반환합니다.
  • 예를 들어, PATH, JAVA_HOME 같은 환경 변수 값을 얻을 수 있습니다.
public class Main {
	public static void main(String[] args) {
    
		String path = System.getenv("PATH");
        System.out.println("PATH: " + path);  // 시스템의 PATH 변수 값 출력
	}
}

2) System.getProperty(String key)

  • 이 메서드는 시스템의 속성을 반환합니다. 자바 버전, 운영체제 종류, 파일 경로 구분자 등과 같은 시스템 정보를 얻을 수 있습니다.
public class Main {
	public static void main(String[] args) {
	String javaVersion = System.getProperty("java.version");
	String osName = System.getProperty("os.name"); 
	System.out.println("Java Version: " + javaVersion);
	System.out.println("Operating System: " + osName);
	}
}

ProcessBuilder

ProcessBuilder를 사용하여 자바에서 텍스트 에디터를 실행 (Mac)

import java.io.IOException;


public class Main {
	public static void main(String[] args) {
    
	// 텍스트 파일 경로를 지정 
	String filePath = "/Users/username/Documents/myfile.txt";
    
	// ProcessBuilder를 통해 TextEdit 실행
	ProcessBuilder processBuilder = new ProcessBuilder("open", "-a", "TextEdit", filePath); 

	try {
		// 프로세스 실행
		Process process = processBuilder.start();  
		process.waitFor();  // 프로세스가 종료될 때까지 대기 
	} catch (IOException | InterruptedException e) {     
		e.printStackTrace(); 
		}
	}
}

0개의 댓글

관련 채용 정보