_JAVA_OPTIONS JAVA_의 차이점TOOL_OPTIONS 및 JAVA_OPTS

'_JAVA_OPTIONS'와 'JAVA_OPTIONS'를 비교해보면 좋을 것 같았다.TOOL_OPTIONS'. 제가 좀 찾아봤는데, 아무것도 찾을 수가 없어서 Stackoverflow에 대한 지식을 이곳에서도 찾을 수 있으면 좋겠습니다.

완성도를 위해 JAVA_OPS가 포함되어 있다. 그것은 JVM의 일부가 아니지만, 야생에서 그것에 대한 많은 의문점들이 있다.

내가 아는 건:

지금까지 알아낸 것은 다음과 같다.

  • 'JAVA_OPTS'는 JDK에서 사용되지 않지만 여러 다른 앱에서 사용됩니다(이 게시물 참조).
  • 'JAVA_TOOL_OPTIONS' 및 *'_JAVA_OPTIONS'는 JVM 인수를 명령줄 매개 변수 대신 환경 변수로 지정하는 방법입니다.
    • 적어도 자바와 자박은 집어 들 수 있다.
    • 이들은 다음과 같은 우선 순위를 가집니다.
      1. '_JAVA_OPTIONS'(다른 항목 덮어쓰기)
      2. 명령줄 파라미터
      3. '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'

공식 문서

'_JAVAOPTIONS'에 대한 문서를 찾을 수 없습니다. ['JAVA'에 대한 설명서]TOOL_OPTIONs']2는 다음과 같은 차이를 잘 드러내지 않는다.

명령줄에 항상 액세스하거나 수정할 수 없으므로(예: 내장된 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
질문에 대한 의견 (2)
해결책

이러한 옵션은 호조를 제외한 거의 있습니다 꼭 이 경우에도 라리브러리 통해 시작 JVM in-process 호출.

사실은 이 변수를 사용할 수 있는 '' _JAVA_OPTIONS 제안됩니다 문서화되어 있지 않는 것이 좋습니다 실제로 볼 수 있으며, 이 사람들은 그들의 I& # 39, ve 그러하매 설정하여 해당 /.bashrc '~'. 그러나 이 문제를 가져올 수 있는 Oracle VM 하스팟 출처를 확인할 수 있습니다 (예: in OpenJDK7).

Vm 을 가지고 있거나 다른 것을 기억해야 할 수도 있습니다 보장은 계속해서 com/go/4e6b330a_kr 문서화되지 않은 대한 지원을 갖추고 있다.

업데이트 04-08-2015: 5 분 저장할 수 있는 '으뜸' _JAVA_OPTIONS 명령줄이 인수만, 검색 엔진, 오는 사람들이 트럼프 'JAVA_TOOL_OPTIONS 선반가공'.

해설 (0)

한 번 더 차이가 있습니다. '' 은 Oracle _JAVA_OPTIONS 특정. IBM JVM IBM_JAVA_OPTIONS '대신' 를 사용하고 있습니다. 이것은 아마도 그렇게 충돌 없이 컴퓨터 관련 옵션뿐 정의할 수 있습니다. '모든' 는 JAVA_TOOL_OPTIONS 인정받을 수 있습니다.

해설 (0)

별도의 취급료 JVM 에서 JAVA_OPTS '전혀' 한다.

이 ' (https://bugs.openjdk.java.net/browse/JDK-4971166) 에 따르면' 에 포함되어 있다) 의 공백을 효과적으로 처리할 java_tool_options 표준 제프마티 사양명세에 말을 한다고 항상 _java_options 특정 하스팟 문서화되지 않은 대신 '기본'.

또한 사용하는 것이 두려워 이러한 인쇄할 수 있는 추가적인 메시지 stdout can& # 39, t be 억제됨.

해설 (0)