_JAVA_OPTIONS Java의 환경 변수
- Java 옵션 유형
-
Java의
_JAVA_OPTIONS
환경 변수 -
Java의
JAVA_TOOL_OPTIONS
환경 변수 -
Java에서
JAVA_TOOL_OPTIONS
와JDK_JAVA_OPTIONS
의 차이점 - 결론
_JAVA_OPTIONS
는 Java 옵션을 JVM 프로세스에 전달하는 데 사용할 수 있는 환경 변수입니다. 전달된 Java 옵션은 Java Virtual Machine에서 명령줄 인수와 유사하게 처리됩니다.
이 기사에서는 다양한 유형의 Java 옵션을 이해합니다. 또한 _JAVA_OPTIONS
및 JAVA_TOOL_OPTIONS
, JDK_JAVA_OPTIONS
및 JAVA_TOOL_OPTIONS
환경 변수의 차이점도 볼 수 있습니다.
Java 옵션 유형
Java는 세 가지 유형의 옵션을 정의합니다. Java는 다양한 Java 버전 및 사용법에 대한 지원을 기반으로 옵션을 구분합니다.
이러한 각 옵션의 범주를 이해하겠습니다.
- 표준 옵션 - Java는 모든 Java 버전이 표준 옵션을 지원함을 보장합니다. Java에서는 다음과 같은 일반적인 작업에 대해 이러한 옵션을 사용할 수 있습니다.
classpath
변수 설정.- JRE(Java Runtime Environment) 버전 확인.
- 자세한 출력 등을 토글합니다.
- 추가 옵션 - Java는 모든 버전에서 이러한 유형의 옵션 지원을 보장하지 않습니다. 이러한 옵션은 특히 JavaHotSpot 가상 머신과 관련이 있으며 변경될 수 있습니다.
Java는 이러한 옵션을 사용하여 특정 변수를 설정합니다. - 고급 옵션 - Java는 개발자를 위한 고급 옵션을 제공합니다. 개발자는 이러한 옵션을 사용하여 JVM, JRE, JIT 및 Garbage Collector를 조정할 수 있습니다.
4가지 유형의 고급 옵션이 있습니다. 이들은 다음과 같이 주어진다.
- 런타임 옵션 - 개발자는 이 옵션을 사용하여 JVM의 런타임을 조정할 수 있습니다.
- JIT 컴파일러 옵션 - 개발자는 이 옵션을 사용하여 JIT(Just In Time) Java 컴파일러를 제어할 수 있습니다.
- 서비스 가능성 옵션 - Java는 시스템 정보를 디버깅하고 수집하기 위해 이러한 옵션을 정의합니다.
- 가비지 컬렉션 옵션 - 개발자는 이러한 옵션을 사용하여 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_OPTIONS
와 JDK_JAVA_OPTIONS
의 차이점
JAVA_TOOL_OPTIONS
및 JDK_JAVA_OPTIONS
는 Java가 두 환경 변수를 모두 사용하여 Java 옵션을 JVM에 전달할 수 있도록 하기 때문에 매우 유사합니다.
이미 보았듯이 JAVA_TOOL_OPTIONS
를 사용하여 인수를 전달하는 모든 규칙과 방법은 JDK_JAVA_OPTIONS
에도 적용됩니다.
그러나 이러한 변수의 주요 차이점은 다음과 같습니다.
- Java 실행기는
JDK_JAVA_OPTIONS
를 사용하여 전달된 인수를 읽습니다. 따라서 런처를 종료하고 JAR 또는 기본 클래스를 지정하는 옵션을 전달할 수 없습니다.
따라서 이 변수를 사용하여 실행기 수준에서 런타임 동안 사용되는 옵션을 전달할 수 있습니다.
- Java 컴파일러와 JAR은
JAVA_TOOL_OPTIONS
도 읽습니다. 따라서 이 변수를 사용하여 실행을 조정하는 옵션을 설정할 수 있습니다.
예를 들어, 이 변수를 사용하여 플래그를 설정할 수 있습니다.
결론
이 기사에서는 Java의 JAVA_TOOL_OPTIONS
, JDK_JAVA_OPTIONS
및 _JAVA_OPTIONS
환경 변수에 대해 설명했습니다. 우리는 또한 이러한 환경 변수 사용의 차이점에 대해 논의했습니다.