Java是否有默認的系統環境變量,當我們設置它時,它總是會被讀取/追加? CATALINA_OTPS
/JAVA_OPTS
等似乎只對TOMCAT/JBOSS等Java系統環境變量
- 我不想把它通過Java系統屬性(這是通過-Dprop1 =值-Dprop2 =數值傳遞),因爲它涉及到殼/批腳本。
- 它應該跨越操作系統,比如Windows中的雙擊jar文件。
- 它應該跨越不同的JRE(Sun,IBM,OpenJDK等)。
- 它不應該涉及額外的編碼。
- 它應該在大多數庫配置文件中工作,如設置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
。當我/用戶雙擊Windows上的jar文件時,應用程序將運行不同的log4j級別和最大內存堆大小。
它的工作原理。至少在使用Sun JRE的Windows中。 Linux也應該工作(http://stackoverflow.com/a/1508684/418439)。任何人都可以告訴我,如果Mac也可以工作這是復活節彩蛋嗎?它甚至沒有正式記錄在http://docs.oracle.com/javase/6/docs/technotes/tools/windows/java.html。我應該問幾年......( – 2012-03-13 03:27:43
@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 2015-03-26 21:50:26