Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在不启动Eclipse的情况下访问属性/环境变量?_Java_Eclipse_Variables_Log4j_Environment Variables - Fatal编程技术网

Java 在不启动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配置文件放在一个地方,这样

我想设置log4j配置文件路径/可以跨其他类文件使用的其他文件夹路径,而无需硬编码文件夹路径

现在,我已经将变量设置为环境变量。但它只能在我启动Eclipse时进行修改。我如何设置这个变量,使任何人(不想启动Eclipse)都可以从外部修改它。此外,它还将用于测试配置中。所以最好不要硬编码,让所有的文件路径等易于重构

final static String log4jpath = System.getenv("LOG4J_PATH");

Soni,如果你想把log4j配置文件放在一个地方,这样每个人都可以访问。按照步骤操作

  • 创建一个具有某个名称的项目,并在src/main/resources文件夹中保存log4j配置文件
  • 创建一个jar文件,该文件必须包含这个log4j配置文件
  • 在需要的地方使用这个创建的jar文件。Log4j将自动使用配置进行所需的日志记录。如果您愿意,您可以将这个jar文件分发给任何想要使用它的人
  • 如果不想更改配置文件,则可以使用上述选项

    现在,如果有人想要修改配置文件。 在这种情况下,只需将配置放在任何项目类路径中,即资源文件夹中。只要类路径和配置文件中有log4jjar文件。它会记录一切

    但是,如果需要,可以通过将配置作为对象传递来扩展Log4j的功能。您可以在下面的链接中按语法访问pro


    Soni,如果您想将log4j配置文件放在一个地方,以便每个人都可以访问。按照步骤操作

  • 创建一个具有某个名称的项目,并在src/main/resources文件夹中保存log4j配置文件
  • 创建一个jar文件,该文件必须包含这个log4j配置文件
  • 在需要的地方使用这个创建的jar文件。Log4j将自动使用配置进行所需的日志记录。如果您愿意,您可以将这个jar文件分发给任何想要使用它的人
  • 如果不想更改配置文件,则可以使用上述选项

    现在,如果有人想要修改配置文件。 在这种情况下,只需将配置放在任何项目类路径中,即资源文件夹中。只要类路径和配置文件中有log4jjar文件。它会记录一切

    但是,如果需要,可以通过将配置作为对象传递来扩展Log4j的功能。您可以在下面的链接中按语法访问pro


    我在属性文件(例如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
  • Java系统属性,例如,在命令行上使用
    -Dfoo=bar
    设置
  • 操作系统环境变量,例如
    设置foo=bar
    (Windows)或
    导出foo=bar
    (Linux)
  • 打包jar之外的应用程序属性,即相对于当前目录的属性。
    可以在命令行上覆盖名称和位置。
    • config/application.properties
    • config/application.yaml
    • application.properties
    • application.yaml
    • 对a的解释:

      [如何从]Java程序外部获取值,例如包含所有其他文件路径的单独文件

      这称为配置文件

      它通常是一个属性文件,类似于Log4j配置文件,但它可以是任何类型的文件,例如XML、JSON、YAML等等

      要识别单个此类文件,您可以使用:

      • 一个环境变量(就像您现在这样)
      • 系统属性(更常见)
      • 当前目录中特定命名的文件
      该文件中的条目将标识您真正想要的所有值<