Java系统环境变量 [英] Java System Environment Variable
问题描述
CATALINA_OTPS
/ JAVA_OPTS
等似乎只适用于TOMCAT / JBOSS等。- 我不想通过Java系统属性(通过-Dprop1 = value1 -Dprop2 = value2传递)来设置它,因为它涉及到shell /批处理脚本。
- 它应该在操作系统上工作,比如Windows中的双击jar文件。
- 它应该可以跨不同的JRE(Sun,IBM,OpenJDK等)
- 它不应该涉及额外的编码。
- 它应该在大多数库配置文件中工作,如设置log4j
级$ {LOG_LEVEL
更新 :添加了项目#4和5.删除操作系统从标题来看我的问题更清楚。
更新2 :看完Perception的回答后,项目2和3可以通过 System.getenv
实现。如何实现项目4和5?
以下是场景示例:
想象一下现在 JAVA_DEFAULT_OPTS
是一个将由Java读取的环境变量现在已成为标准。在开发台式机上,我设置 JAVA_DEFAULT_OPTS = -DLOG_LEVEL = DEBUG -Xmx384m
;在生产服务器机器上,客户设置 JAVA_DEFAULT_OPTS = -DLOG_LEVEL = INFO -Xmx1024m
。当我/用户双击Windows上的jar文件时,应用程序将运行不同的log4j级别和最大内存堆大小。
有一个名为 _JAVA_OPTIONS 的特殊环境变量,其值将由JVM(java.exe)拾取。
在Windows中:
set _JAVA_OPTIONS = -Xms64m -Xmx128m -Dawt.useSystemAAFontSettings = lcd
pre>
在Linux中:
export _JAVA_OPTIONS =' - Xms64m - Xmx128m -Dawt.useSystemAAFontSettings = lcd'
对于Java Web Start,它是 JAVAWS_VM_ARGS 。对于javaw.exe(Applet),它是 _JPI_VM_OPTIONS 。
Does Java have a default System Environment Variable that will always be read/appended when we set it?
CATALINA_OTPS
/JAVA_OPTS
etc seems only for TOMCAT/JBOSS etc.
- I do not want to set it through Java system properties (which is passed in via -Dprop1=value1 -Dprop2=value2) as it involves shell/batch script.
- It should work across OS, like double click jar file in Windows.
- It should work across different JREs (Sun, IBM, OpenJDK etc).
- It should not involve extra coding.
- It should work in most libraries configuration file, like setting log4j level ${LOG_LEVEL}.
Update: Added item # 4 and 5. Remove OS from title to make my question clearer.
Update 2: After looking at Perception's answer, it seems like my item 2 and 3 can be achieved via
System.getenv
. How to achieve item 4 and 5?Here is example of scenario: Imagine now
JAVA_DEFAULT_OPTS
is an environment variable that will be read by Java as it has now become the standard. On development desktop machine, I setJAVA_DEFAULT_OPTS=-DLOG_LEVEL=DEBUG -Xmx384m
; On production server machine, customers setJAVA_DEFAULT_OPTS=-DLOG_LEVEL=INFO -Xmx1024m
. When I/users double click the jar file on Windows, the application will run will different log4j level and max memory heap size.解决方案There is a special environment variable called _JAVA_OPTIONS, its value will be picked up by the JVM (java.exe).
In Windows:
set _JAVA_OPTIONS=-Xms64m -Xmx128m -Dawt.useSystemAAFontSettings=lcd
In Linux:
export _JAVA_OPTIONS='-Xms64m -Xmx128m -Dawt.useSystemAAFontSettings=lcd'
For Java Web Start it's JAVAWS_VM_ARGS. For javaw.exe (Applet), it's _JPI_VM_OPTIONS.
这篇关于Java系统环境变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!