Java 在不启动Eclipse的情况下访问属性/环境变量?
我想设置log4j配置文件路径/可以跨其他类文件使用的其他文件夹路径,而无需硬编码文件夹路径 现在,我已经将变量设置为环境变量。但它只能在我启动Eclipse时进行修改。我如何设置这个变量,使任何人(不想启动Eclipse)都可以从外部修改它。此外,它还将用于测试配置中。所以最好不要硬编码,让所有的文件路径等易于重构Java 在不启动Eclipse的情况下访问属性/环境变量?,java,eclipse,variables,log4j,environment-variables,Java,Eclipse,Variables,Log4j,Environment Variables,我想设置log4j配置文件路径/可以跨其他类文件使用的其他文件夹路径,而无需硬编码文件夹路径 现在,我已经将变量设置为环境变量。但它只能在我启动Eclipse时进行修改。我如何设置这个变量,使任何人(不想启动Eclipse)都可以从外部修改它。此外,它还将用于测试配置中。所以最好不要硬编码,让所有的文件路径等易于重构 final static String log4jpath = System.getenv("LOG4J_PATH"); Soni,如果你想把log4j配置文件放在一个地方,这样
final static String log4jpath = System.getenv("LOG4J_PATH");
Soni,如果你想把log4j配置文件放在一个地方,这样每个人都可以访问。按照步骤操作
Soni,如果您想将log4j配置文件放在一个地方,以便每个人都可以访问。按照步骤操作
我在属性文件(例如config.properties)中添加了所有文件和文件夹路径,然后通过
InputStream input=new FileInputStream(“到//config.properties的路径”)在testsetup方法中使用它;
Properties prop=新属性();
道具载荷(输入);
System.setProperty(“log4j2.configurationFile”,prop.getProperty(“log4j.path”)代码>
这样,所有文件/文件夹路径都可以从外部修改,无需从项目内部设置环境变量。我在属性文件(例如config.properties)中添加了所有文件和文件夹路径,然后通过InputStream input=new FileInputStream在testsetup方法中使用它(“指向//config.properties的路径”);
Properties prop=新属性();
道具载荷(输入);
System.setProperty(“log4j2.configurationFile”,prop.getProperty(“log4j.path”);
这样,所有文件/文件夹路径都可以从外部修改,而无需从项目内部设置环境变量。解释如下:
[如何从]Java程序外部获取值,例如包含所有其他文件路径的单独文件
这称为配置文件
它通常是一个属性文件,类似于Log4j配置文件,但它可以是任何类型的文件,例如XML、JSON、YAML等等
要识别单个此类文件,您可以使用:
- 一个环境变量(就像您现在这样)
- 系统属性(更常见)
- 当前目录中特定命名的文件
该文件中的条目将标识您真正想要的所有值
例如,Spring是一个填充Java框架,它将在许多地方查找配置值。有关详细信息,请参阅,但下面是最常见配置值的摘要:
-
- 命令行参数,例如java-jarmyapp.jar--foo=bar
-Dfoo=bar
设置设置foo=bar
(Windows)或导出foo=bar
(Linux)可以在命令行上覆盖名称和位置。
config/application.properties
config/application.yaml
application.properties
application.yaml
- 对a的解释:
[如何从]Java程序外部获取值,例如包含所有其他文件路径的单独文件
这称为配置文件
它通常是一个属性文件,类似于Log4j配置文件,但它可以是任何类型的文件,例如XML、JSON、YAML等等
要识别单个此类文件,您可以使用:
- 一个环境变量(就像您现在这样)
- 系统属性(更常见)
- 当前目录中特定命名的文件