2012-03-13 2 views
6

자바는 우리가 설정할 때 항상 읽고 쓸 수있는 기본 시스템 환경 변수를 가지고 있습니까? CATALINA_OTPS/JAVA_OPTS 등은 TOMCAT/JBOSS 등자바 시스템 환경 변수

  1. 나는 그것이 쉘을 포함로 (-Dprop1 = 값 1 -Dprop2 = 값 2를 통해 전달되는) Java 시스템 등록 정보를 통해 설정하지 않으/배치를위한 것 스크립트.
  2. Windows에서 두 번 클릭 jar 파일처럼 OS에서 작동해야합니다.
  3. 다른 JRE (Sun, IBM, OpenJDK 등)에서 작동해야합니다.
  4. 추가 코딩이 필요하지 않습니다.
  5. log4j 수준 $ {LOG_LEVEL} (으)로 설정하는 것과 같은 대부분의 라이브러리 구성 파일에서 작동해야합니다.

업데이트 : 추가 된 항목 # 4와 제목 5. 제거 OS는 내 질문에 명확하게합니다.

업데이트 2 : 인식의 대답을보고 한 후, 제 2 항처럼 보인다 3 System.getenv를 통해 달성 될 수있다. 항목 4와 5를 달성하는 방법은 무엇입니까?

다음은 시나리오 예입니다. 지금 상상해보십시오. JAVA_DEFAULT_OPTS은 이제 Java에서 표준이 된 환경 변수입니다. 개발 데스크톱 컴퓨터에서 JAVA_DEFAULT_OPTS=-DLOG_LEVEL=DEBUG -Xmx384m; 프로덕션 서버 시스템에서 고객은 JAVA_DEFAULT_OPTS=-DLOG_LEVEL=INFO -Xmx1024m으로 설정합니다. I/users가 Windows에서 jar 파일을 두 번 클릭하면 응용 프로그램이 다른 log4j 수준과 최대 메모리 힙 크기로 실행됩니다.

  • os.name
  • os.arch
  • os.version

모든 :

답변

10

_JAVA_OPTIONS이라는 특별한 환경 변수가 있으며 그 값은 JVM (java.exe)에 의해 선택됩니다. 윈도우에서

:

set _JAVA_OPTIONS=-Xms64m -Xmx128m -Dawt.useSystemAAFontSettings=lcd 

리눅스에서 : 자바 웹에 대 한

export _JAVA_OPTIONS='-Xms64m -Xmx128m -Dawt.useSystemAAFontSettings=lcd' 

JAVAWS_VM_ARGS의 시작. javaw.exe (애플릿)의 경우 _JPI_VM_OPTIONS입니다.

+0

그것은 작동합니다. 적어도 Sun JRE가있는 Windows의 경우. Linux도 잘 작동합니다 (http://stackoverflow.com/a/1508684/418439). 누구도 Mac이 작동하는지 알려주세요. 이게 부활절 달걀 이니? 공식적으로 http://docs.oracle.com/javase/6/docs/technotes/tools/windows/java.html에 문서화되지 않았습니다. 이 몇 년 전에 다시 물어봐야 할 것이 있습니다. ( –

+0

@CKLee, Java 2D 설명서, https://docs.oracle.com/javase/8/docs/technotes/guides/2d에서 이에 대한 언급을 찾을 수 있습니다. /flags.html 및 http://docs.oracle.com/javase/7/docs/webnotes/tsg/TSG-Desktop/html/plugin.html – RealHowTo

1

자바는 JVM이 실행될 때 항상 설정되는 표준 OS 시스템 환경 변수를 가지고 'System.getProperty (propertyName)'을 통해 액세스 가능

이보다 더 필요한 것이 있으면 언제든지 예 : Management API.

+0

Java Management Extensions (JMX) API를 의미합니까? 여분의 코딩없이 어떻게 할 것인가? –

+0

관리 API 링크가 포함됩니다.'추가 코딩'의 의미가 확실하지 않은 경우 필요한 정보에 액세스하는 데 필요한 최소한 한 줄 또는 두 줄의 코드를 작성해야합니다. – Perception

+0

제 질문을 명확하게하기 위해 항목 # 5를 추가했습니다. –