_JAVA_OPTIONS Java의 환경 변수

Mohd Mohtashim Nawaz 2023년10월12일
  1. Java 옵션 유형
  2. Java의 _JAVA_OPTIONS 환경 변수
  3. Java의 JAVA_TOOL_OPTIONS 환경 변수
  4. Java에서 JAVA_TOOL_OPTIONSJDK_JAVA_OPTIONS의 차이점
  5. 결론
_JAVA_OPTIONS Java의 환경 변수

_JAVA_OPTIONS는 Java 옵션을 JVM 프로세스에 전달하는 데 사용할 수 있는 환경 변수입니다. 전달된 Java 옵션은 Java Virtual Machine에서 명령줄 인수와 유사하게 처리됩니다.

이 기사에서는 다양한 유형의 Java 옵션을 이해합니다. 또한 _JAVA_OPTIONSJAVA_TOOL_OPTIONS, JDK_JAVA_OPTIONSJAVA_TOOL_OPTIONS 환경 변수의 차이점도 볼 수 있습니다.

Java 옵션 유형

Java는 세 가지 유형의 옵션을 정의합니다. Java는 다양한 Java 버전 및 사용법에 대한 지원을 기반으로 옵션을 구분합니다.

이러한 각 옵션의 범주를 이해하겠습니다.

  1. 표준 옵션 - Java는 모든 Java 버전이 표준 옵션을 지원함을 보장합니다. Java에서는 다음과 같은 일반적인 작업에 대해 이러한 옵션을 사용할 수 있습니다.
    1. classpath 변수 설정.
    2. JRE(Java Runtime Environment) 버전 확인.
    3. 자세한 출력 등을 토글합니다.
  2. 추가 옵션 - Java는 모든 버전에서 이러한 유형의 옵션 지원을 보장하지 않습니다. 이러한 옵션은 특히 JavaHotSpot 가상 머신과 관련이 있으며 변경될 수 있습니다.
    Java는 이러한 옵션을 사용하여 특정 변수를 설정합니다.
  3. 고급 옵션 - Java는 개발자를 위한 고급 옵션을 제공합니다. 개발자는 이러한 옵션을 사용하여 JVM, JRE, JIT 및 Garbage Collector를 조정할 수 있습니다.

4가지 유형의 고급 옵션이 있습니다. 이들은 다음과 같이 주어진다.

  1. 런타임 옵션 - 개발자는 이 옵션을 사용하여 JVM의 런타임을 조정할 수 있습니다.
  2. JIT 컴파일러 옵션 - 개발자는 이 옵션을 사용하여 JIT(Just In Time) Java 컴파일러를 제어할 수 있습니다.
  3. 서비스 가능성 옵션 - Java는 시스템 정보를 디버깅하고 수집하기 위해 이러한 옵션을 정의합니다.
  4. 가비지 컬렉션 옵션 - 개발자는 이러한 옵션을 사용하여 Java의 가비지 컬렉션 메커니즘을 제어할 수 있습니다.

Java의 _JAVA_OPTIONS 환경 변수

Java는 프로세스 실행 중에 Java 옵션을 JVM에 전달하기 위해 여러 환경 변수를 정의합니다. _JAVA_OPTIONS는 이러한 환경 변수 중 하나입니다.

Java는 이 환경 변수를 사용하여 전달하는 인수를 명령줄 인수와 유사하게 처리합니다.

실제로 Oracle의 Java 설명서에 따라 Java는 이러한 옵션을 제공하므로 직접 명령줄을 사용할 수 없는 실행 환경에서 명령줄 인수를 프로그램에 전달할 수 있습니다.

각 인수가 공백으로 구분되는 여러 인수를 전달할 수 있습니다. 인수에 공백이 포함된 경우 따옴표로 묶어야 합니다.

인수가 유효하지 않으면 프로그램 실행이 실패하므로 _JAVA_OPTIONS를 사용할 때 주의해야 합니다.

로그 추적을 활성화하기 위해 변수의 옵션을 전달하는 예를 살펴보겠습니다.

export _JAVA_OPTIONS = '-Dsun.java2d.trace=log'

Java의 JAVA_TOOL_OPTIONS 환경 변수

JAVA_TOOL_OPTIONS_JAVA_OPTIONS의 후속 제품입니다. _JAVA_OPTIONS 환경 변수는 JVM 사양에서 표준화되지 않았습니다. 따라서 다른 공급업체에는 이 변수에 대한 이름이 있습니다.

그러나 JAVA_TOOL_OPTIONS 변수는 JVM 사양에서 표준화되어 있습니다. 항상 _JAVA_OPTIONS보다 선호해야 합니다.

공백 문제와 인용문을 더 잘 처리하기 때문입니다.

Java에서 JAVA_TOOL_OPTIONSJDK_JAVA_OPTIONS의 차이점

JAVA_TOOL_OPTIONSJDK_JAVA_OPTIONS는 Java가 두 환경 변수를 모두 사용하여 Java 옵션을 JVM에 전달할 수 있도록 하기 때문에 매우 유사합니다.

이미 보았듯이 JAVA_TOOL_OPTIONS를 사용하여 인수를 전달하는 모든 규칙과 방법은 JDK_JAVA_OPTIONS에도 적용됩니다.

그러나 이러한 변수의 주요 차이점은 다음과 같습니다.

  1. Java 실행기는 JDK_JAVA_OPTIONS를 사용하여 전달된 인수를 읽습니다. 따라서 런처를 종료하고 JAR 또는 기본 클래스를 지정하는 옵션을 전달할 수 없습니다.

따라서 이 변수를 사용하여 실행기 수준에서 런타임 동안 사용되는 옵션을 전달할 수 있습니다.

  1. Java 컴파일러와 JAR은 JAVA_TOOL_OPTIONS도 읽습니다. 따라서 이 변수를 사용하여 실행을 조정하는 옵션을 설정할 수 있습니다.

예를 들어, 이 변수를 사용하여 플래그를 설정할 수 있습니다.

결론

이 기사에서는 Java의 JAVA_TOOL_OPTIONS, JDK_JAVA_OPTIONS_JAVA_OPTIONS 환경 변수에 대해 설명했습니다. 우리는 또한 이러한 환경 변수 사용의 차이점에 대해 논의했습니다.