System.getenv("TEMP")

本文通过一个简单的Java程序展示了如何获取和打印系统的环境变量。特别关注了TEMP环境变量,解释了它并非Tomcat项目的临时文件路径,而是由Java环境变量配置决定的临时文件夹路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

近来希项目中用到了System.getenv("TEMP")方法,开始还以为这个temp是tomcat中项目根目录下的temp临时文件路径呢,后来我发现不对,经过测试他是我们配置java环境变量那里配置的temp属性的路径地址:


具体情况见事例:

      
public class SystemAttributeTest {

    /**
     * @param args
     */
    public static void main(String[] args) {
         System.out.println(System.getenv());
         System.out.println("---------------------------------------");
         //System.getProperties().list(System.err);
    }

}

输出内容如下:

-- listing properties --{USERPROFILE=C:\Users\CT, ProgramData=C:\ProgramData, PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC, windows_tracing_logfile=C:\BVTBin\Tests\installpackage\csilogfile.log, JAVA_HOME=D:\vicp\vicp_server\jdk, ProgramFiles(x86)=C:\Program Files (x86), windows_tracing_flags=3, TEMP=C:\Users\CT\AppData\Local\Temp, SystemDrive=C:, KMP_DUPLICATE_LIB_OK=TRUE, ProgramFiles=C:\Program Files, Path=C:\ProgramData\Oracle\Java\javapath;C:\Program Files\Broadcom\Broadcom 802.11 Network Adapter\Driver;;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\WIDCOMM\Bluetooth Software\;C:\Program Files\WIDCOMM\Bluetooth Software\syswow64;;C:\Program Files (x86)\VISYSTEM\ipp-file\;E:\TortoiseSVN\bin;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;E:\Program Files\bin;E:\tools\bin;E:\Program Files (x86)\bin;E:\Program Files\MySQL\MySQL Server 5.5\bin;C:\Program Files (x86)\Visystem\Ipp\ipp-file\;D:\vicp\vicp_server\jdk\bin;D:\vicp\vicp_server\jdk\jre\bin;D:\Maven\apache-maven-3.3.3\bin;, HOMEDRIVE=C:, PROCESSOR_REVISION=3c03, USERDOMAIN=WANG, ALLUSERSPROFILE=C:\ProgramData, ProgramW6432=C:\Program Files, PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 60 Stepping 3, GenuineIntel, KMP_WARNINGS=0, SESSIONNAME=Console, TMP=C:\Users\CT\AppData\Local\Temp, CommonProgramFiles=C:\Program Files\Common Files, CLASSPATH=.;D:\vicp\vicp_server\jdk\lib;D:\vicp\vicp_server\jdk\lib\tools.jar, LOGONSERVER=\\WANG, M2_HOME=D:\Maven\apache-maven-3.3.3, PROCESSOR_ARCHITECTURE=AMD64, FP_NO_HOST_CHECK=NO, OS=Windows_NT, HOMEPATH=\Users\CT, PROCESSOR_LEVEL=6, CommonProgramW6432=C:\Program Files\Common Files, LOCALAPPDATA=C:\Users\CT\AppData\Local, COMPUTERNAME=WANG, windir=C:\Windows, SystemRoot=C:\Windows, NUMBER_OF_PROCESSORS=8, USERNAME=CT, PUBLIC=C:\Users\Public, PSModulePath=C:\Windows\system32\WindowsPowerShell\v1.0\Modules\, CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files, ComSpec=C:\Windows\system32\cmd.exe, APPDATA=C:\Users\CT\AppData\Roaming}
---------------------------------------

# config/config_loader.py import os from dotenv import load_dotenv from pathlib import Path class ConfigLoader: _instance = None def __new__(cls): if cls._instance is None: cls._instance = super(ConfigLoader, cls).__new__(cls) cls._instance._load_config() return cls._instance def _load_config(self): """加载并解析环境变量""" # 加载.env文件 env_path = Path(__file__).parent.parent / '.env' load_dotenv(env_path) # 基础配置 self.PROJECT_ROOT = Path(__file__).parent.parent self.ENV = os.getenv('FLASK_ENV', 'production') # 路径配置 self.AGENT_PATH = Path(os.getenv('AGENT_PATH', self.PROJECT_ROOT / 'agent')) self.WEB_UI_PATH = Path(os.getenv('WEB_UI_PATH', self.PROJECT_ROOT / 'web_ui')) self.MODEL_CACHE_DIR = Path(os.getenv('MODEL_CACHE_DIR', self.PROJECT_ROOT / 'model_cache')) self.LOG_DIR = Path(os.getenv('LOG_DIR', self.PROJECT_ROOT / 'logs')) # 根据环境选择配置 if self.ENV == 'production': self.HOST = os.getenv('PROD_HOST', '0.0.0.0') self.PORT = int(os.getenv('PROD_PORT', 8000)) self.LOG_LEVEL = os.getenv('PROD_LOG_LEVEL', 'INFO') self.DB_URI = f"mysql://{os.getenv('DB_USER')}:{os.getenv('DB_PASSWORD')}@{os.getenv('DB_HOST')}/prod_db" elif self.ENV == 'test': self.HOST = os.getenv('TEST_HOST', '127.0.0.1') self.PORT = int(os.getenv('TEST_PORT', 5001)) self.LOG_LEVEL = os.getenv('TEST_LOG_LEVEL', 'DEBUG') self.DB_URI = f"sqlite:///{self.PROJECT_ROOT}/test_db.sqlite" else: # development self.HOST = os.getenv('HOST', '127.0.0.1') self.PORT = int(os.getenv('FLASK_PORT', 5000)) self.LOG_LEVEL = os.getenv('LOG_LEVEL', 'DEBUG') self.DB_URI = f"sqlite:///{self.PROJECT_ROOT}/dev_db.sqlite" # 模型配置 self.USE_GPU = os.getenv('USE_GPU', 'false').lower() == 'true' self.DEFAULT_MODEL = os.getenv('DEFAULT_MODEL', 'minimal-model') # 安全配置 self.SECRET_KEY = os.getenv('SECRET_KEY', 'dev-secret-key') # 确保目录存在 self._ensure_dirs() def _ensure_dirs(self): """确保所需目录存在""" self.LOG_DIR.mkdir(parents=True, exist_ok=True) self.MODEL_CACHE_DIR.mkdir(parents=True, exist_ok=True) # 全局配置实例 config = ConfigLoader 还有一个问题 我的E:\AI_Workspace 是工作区域,但是我看老是有E:\AI_System\AI_Workspace这里建的空文件夹,我不懂到底是怎么了?
最新发布
08-10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值