_JAVA_OPTIONS, JAVA_의 차이점TOOL_OPTS 및 JAVA_OPTS
서로 비교를 해 보면 좋을 것 같았다._JAVA_OPTIONS
그리고JAVA_TOOL_OPTIONS
나는 하나를 찾아 헤맸지만, 아무것도 찾을 수 없으니, Stackoverflow에 관한 지식을 여기서 찾을 수 있기를 바란다.
JAVA_OPTS
완전성을 위해 포함되어 있다.그것은 JVM에 속하지 않지만, 야생에서 그것에 대해 많은 의문점이 있다.
내가 아는 건:
지금까지 나는 다음과 같은 사실을 알아냈다.
JAVA_OPTS
JDK에서 사용하는 것이 아니라 여러 다른 앱에서 사용하는 것이다(이 게시물 참조).JAVA_TOOL_OPTIONS
그리고 명령줄 매개 변수 대신 환경 변수로 JVM 인수를 지정하는 방법이다.- 적어도 에 의해 픽업된다.
java
그리고javac
- 이러한 우선 순위는 다음과 같다.
_JAVA_OPTIONS
(다른 항목 덮어쓰기)- 명령줄 매개 변수
JAVA_TOOL_OPTIONS
(다른 사람이 덮어쓴다)
- 적어도 에 의해 픽업된다.
내가 알고 싶은 것은
- 비교한 공식 문서가 있는가?
JAVA_TOOL_OPTIONS
그리고_JAVA_OPTIONS
- 다른 차이점은 없으십니까?
JAVA_TOOL_OPTIONS
그리고_JAVA_OPTIONS
(우선 순위 제외). - 어떤 실행 파일이 픽업하는지
JAVA_TOOL_OPTIONS
그리고_JAVA_OPTIONS
(외에도)java
그리고javac
) - 에 포함될 수 있는 항목에 대한 제한
JAVA_TOOL_OPTIONS
그리고_JAVA_OPTIONS
공식 문서
에 대한 어떠한 문서도 찾을 수 없었다._JAVA_OPTIONS
의 문서에는 차이점이 별로 드러나지 않는다.
예를 들어 내장형 VM이나 스크립트 깊은 곳에서 실행된 VM과 같이 명령줄에 항상 액세스하거나 수정할 수 없으므로 JAVA_TOOL_OPTIONS 변수가 제공되어 이러한 경우 에이전트를 실행할 수 있다.
...
예제 스크립트
이게 내가 이걸 알아낼 때 사용했던 암호야.콘솔 출력은 설명으로 포함됨:
export JAVA_OPTS=foobar
export JAVA_TOOL_OPTIONS=
export _JAVA_OPTIONS="-Xmx512m -Xms64m"
java -version
# Picked up JAVA_TOOL_OPTIONS:
# Picked up _JAVA_OPTIONS: -Xmx512m -Xms64m
# java version "1.7.0_40"
OpenJDK Runtime Environment (IcedTea 2.4.1) (suse-3.41.1-x86_64)
OpenJDK 64-Bit Server VM (build 24.0-b50, mixed mode)
javac -version
# Picked up JAVA_TOOL_OPTIONS:
# Picked up _JAVA_OPTIONS: -Xmx512m -Xms64m
# javac 1.7.0_40
export JAVA_TOOL_OPTIONS="-Xmx1 -Xms1"
export _JAVA_OPTIONS="-Xmx512m -Xms64m"
javac -version
# Picked up JAVA_TOOL_OPTIONS: -Xmx1 -Xms1
# Picked up _JAVA_OPTIONS: -Xmx512m -Xms64m
# javac 1.7.0_40
export JAVA_TOOL_OPTIONS="-Xmx512m -Xms64m"
export _JAVA_OPTIONS="-Xmx1 -Xms1"
javac -version
# Picked up JAVA_TOOL_OPTIONS: -Xmx512m -Xms64m
# Picked up _JAVA_OPTIONS: -Xmx1 -Xms1
# Error occurred during initialization of VM
# Too small initial heap
export JAVA_TOOL_OPTIONS="-Xmx1 -Xms1"
export _JAVA_OPTIONS=
java -Xmx512m -Xms64m -version
# Picked up JAVA_TOOL_OPTIONS: -Xmx1 -Xms1
# Picked up _JAVA_OPTIONS:
# java version "1.7.0_40"
# OpenJDK Runtime Environment (IcedTea 2.4.1) (suse-3.41.1-x86_64)
# OpenJDK 64-Bit Server VM (build 24.0-b50, mixed mode)
export JAVA_TOOL_OPTIONS=
export _JAVA_OPTIONS="-Xmx1 -Xms1"
java -Xmx512m -Xms64m -version
# Picked up JAVA_TOOL_OPTIONS:
# Picked up _JAVA_OPTIONS: -Xmx1 -Xms1
# Error occurred during initialization of VM
# Too small initial heap
도서관 호출을 통해 JVM을 진행 중이라 하더라도 이러한 옵션이 선택된다는 점만 빼면 당신은 거의 못을 박았다.
라는 사실_JAVA_OPTIONS
이 변수를 사용하는 것이 권장되지 않는다는 것은 문서화되지 않았으며, 실제로 나는 사람들이 변수를 자신의 변수에 설정하여 남용하는 것을 본 적이 있다.~/.bashrc
그러나 이 문제의 진상을 파악하려면 Oracle HotSpot VM의 소스(예: OpenJDK7)를 확인하십시오.
또한 다른 VM이 문서화되지 않은 변수를 계속 지원하거나 지원할 것이라는 보장은 없다는 점도 기억하십시오.
UPDATE 2015-08-04: 검색 엔진에서 오는 사람들을 위해 5분을 절약하기 위해,_JAVA_OPTIONS
트럼프의 명령줄 주장, 이것이 결국 트럼프를 능가한다.JAVA_TOOL_OPTIONS
.
한 가지 다른 점이 더 있다._JAVA_OPTIONS
오라클 전용.IBM JVM이 사용 중IBM_JAVA_OPTIONS
대에 따라서 충돌 기계 할 수 이는 충돌 없이 기계별 옵션을 정의할 수 있도록 수행되었을 것이다. JAVA_TOOL_OPTIONS
vmx에서 에 대해 인식됨.
JAVA_OPTS
JVM에서 특별한 취급이 전혀 없다.
그리고 https://bugs.openjdk.java.net/browse/JDK-4971166에 따르면JAVA_TOOL_OPTIONS
표준 JVMTI 사양에 포함되며, 인용된 공간을 더 잘 처리하며, 문서화되지 않은 Hotspot 전용 대신 항상 선호되어야 한다._JAVA_OPTIONS
.
또한 이러한 메시지를 사용하면 억제할 수 없는 추가 메시지가 인쇄될 수 있으므로 주의하십시오.
@ryenus가 지적했듯이, JDK 9+ 이후로 JDK_J가 있다.AVA_OPTIONS를 선호하는 대체 항목: JDK_J의 차이점AVA_Options 및 JAVA_Java 11 사용 시 TOOL_OPTIONS?
'Programing' 카테고리의 다른 글
Java - 새 항목 작성 방법(키, 값) (0) | 2022.04.20 |
---|---|
오리지널텍스트 vue, .apk 파일을 얻는 방법? (0) | 2022.04.20 |
기존 각도 애플리케이션에 vueJS 추가 (0) | 2022.04.20 |
TypeError: vue-resource 사용 시 t.replace가 함수 오류가 아님 (0) | 2022.04.19 |
C의 "자유"는 왜 자유로워지는 바이트 수를 가져가지 않는가? (0) | 2022.04.19 |