Java是否有一个默认的系统环境变量,在我们设置它时会一直读取/追加? CATALINA_OTPS
/ JAVA_OPTS
等似乎仅适用于TOMCAT / JBOSS等。
更新 :添加了第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级别和最大内存堆大小。
答案 0 :(得分:12)
有一个名为 _JAVA_OPTIONS 的特殊环境变量,其值将由JVM(java.exe)获取。
在Windows中:
set _JAVA_OPTIONS=-Xms64m -Xmx128m -Dawt.useSystemAAFontSettings=lcd
在Linux中:
export _JAVA_OPTIONS='-Xms64m -Xmx128m -Dawt.useSystemAAFontSettings=lcd'
对于Java Web Start JAVAWS_VM_ARGS 。对于javaw.exe(Applet),它是 _JPI_VM_OPTIONS 。
答案 1 :(得分:1)
Java有一个标准的OS系统环境变量,它始终在启动JVM时设置:
所有可通过'System.getProperty(propertyName)`
访问如果您需要更多内容,可以随时使用Management API。