본문 바로가기

01. Java/02. etc

java.lang.System

 System 클래스 하면 맨 처음 찍어봤던 System.out.println("Hello World!"); 나 Scanner 관련해서 사용했던 System.in 정도.

사용자 마다 사용환경이 다르기 때문에 관련하여 시스템에 관련된 전반적인 정보를 가져오는 메소드를 많이 제공해준다.

 

참고

https://docs.oracle.com/javase/8/docs/api/java/lang/System.html

 

System (Java Platform SE 8 )

Sets the system property indicated by the specified key. First, if a security manager exists, its SecurityManager.checkPermission method is called with a PropertyPermission(key, "write") permission. This may result in a SecurityException being thrown. If n

docs.oracle.com

 

개념적인 내용보다는 활용법에 대해 정리하였다.

 

 

 java.lang.System은 Java 프로그래밍 언어의 표준 라이브러리인 java.lang 패키지에 속한 클래스 중 하나이다. 이 클래스는 시스템과 관련된 작업을 수행하고 시스템 속성을 관리하기 위한 유용한 메서드와 상수를 제공한다.

java.lang.System 클래스의 주요 기능과 메소드는 다음과 같다.

● out, in, err 변수

 System.out, System.in, System.err는 각각 표준 출력 스트림, 표준 입력 스트림 및 표준 오류 출력 스트림에 대한 정적 변수다. 이러한 스트림을 사용하여 표준 입출력 작업을 수행할 수 있다.

● currentTimeMillis()

 현재 시스템 시간을 밀리초(1/1000 초) 단위로 반환하는 메서드다. 주로 시간 측정 및 성능 분석에 사용된다.

● nanoTime()

 현재 시스템 시간을 나노초(1/1,000,000,000 초) 단위로 반환하는 메서드로, 더 정밀한 시간 측정에 사용된다.

getProperty(String key)

 시스템 속성을 가져오는 메서드로, 주어진 key에 해당하는 시스템 속성 값을 반환한다.

● setProperty(String key, String value)

 시스템 속성을 설정하는 메서드로, 주어진 key와 value를 사용하여 시스템 속성을 설정한다.

● exit(int status)

 현재 실행 중인 Java 프로그램을 종료하는 메서드로, status 매개변수는 종료 상태를 나타낸다.

● gc()

 가비지 컬렉션을 실행하는 메서드로, 불필요한 객체의 메모리를 회수하는 데 사용된다.

 java.lang.System 클래스는 시스템 수준의 작업을 수행하는 데 도움을 주며, Java 프로그램에서 자주 사용된다. 이 클래스의 멤버들은 정적(static) 멤버로 정의되어 있으므로, 클래스 이름을 통해 접근할 수 있다.

 


위에 관련 메소드를 나열하였는데 정작 쓰고 싶었던 내용은 getProperty 메소드로 가져오는 값들이다.
 

 일반적으로 이 메서드를 사용하여 시스템의 여러 속성 중 하나에 접근할 수 있다. 몇 가지 일반적인 시스템 속성과 해당 용도는 다음과 같다.

"java.version" : 현재 사용 중인 Java 가상 머신 (JVM)의 버전을 나타낸다.

"java.vendor" : Java 가상 머신 (JVM) 공급자의 정보를 제공한다.

"os.name" : 현재 운영 체제의 이름을 나타낸다 (예: "Windows", "Linux", "Mac OS X" 등).

"os.version" : 현재 운영 체제의 버전을 나타낸다.

"user.home" : 사용자의 홈 디렉토리 경로를 제공한다.

"user.dir" : 현재 작업 디렉토리의 경로를 나타낸다.

"file.separator" : 현재 운영 체제에서 파일 경로 구분 기호 (예: "/" 또는 "")를 나타낸다.

"line.separator" : 현재 운영 체제에서 줄 바꿈 문자를 나타낸다.

 

public class MySystem {
	
	public static void main(String[] args) {
        String javaVersion = System.getProperty("java.version"); // Java 버전
        String osName = System.getProperty("os.name"); //현재 운영 체제
        String osVersion = System.getProperty("os.version"); //현재 운영 체제의 버전
        String userHomePath = System.getProperty("user.home"); //사용자의 홈 디렉토리 경로
        String userDir = System.getProperty("user.dir"); // 작업 디렉토리
        String separator = System.getProperty("file.separator"); //현재 운영 체제 파일 경로 구분 기호
        String lineSeparator = System.getProperty("line.separator"); //현재 운영 체제 줄 바꿈 문자
          
        System.out.println("Java Version: " + javaVersion);
        System.out.println("osName: " + osName);
        System.out.println("osVersion: " + osVersion);
        System.out.println("userHomePath: " + userHomePath);
        System.out.println("userDir: " + userDir);
        System.out.println("fileSeparator: " + separator);
        System.out.println("lineSeparator: " + "\\"+lineSeparator+"");
	}
}

 

 

console

 

메소드가 전부 static이 붙어있기 때문에 따로 import 해줄 것은 없다.

getProperty의 경우 자주 사용하는 것 위주로 작성하였으며 참고 링크로 가면 전체 내용을 볼 수 있다.

'01. Java > 02. etc' 카테고리의 다른 글

[Java]Apache POI  (0) 2023.12.01
java.util.Base64  (0) 2023.11.22
java.util.UUID  (0) 2023.11.21
java.util.Properties  (0) 2023.11.20