Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.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 EAR模块中的静态变量和该EAR中的JAR_Java_Logging - Fatal编程技术网

Java EAR模块中的静态变量和该EAR中的JAR

Java EAR模块中的静态变量和该EAR中的JAR,java,logging,Java,Logging,我们在EAR模块的一个java文件中有静态变量,我们正在通过init()方法初始化这些变量。我们有另一个jar,它包含一些其他的助手类,该jar中的方法是从EAR模块本身调用的。现在这个jar还有一个类文件,它具有相同的静态变量,这些变量再次通过init()方法初始化。变量名称与EAR模块中给出的名称相同。因此,当我在EAR文件中处理这个场景时,我发现一旦代码流经该jar,变量值就会被覆盖。我这里的问题是,如果我在jar中有一个不同的包结构,它会有帮助吗 相同的类文件是我的日志文件,我正在初始化

我们在EAR模块的一个java文件中有静态变量,我们正在通过init()方法初始化这些变量。我们有另一个jar,它包含一些其他的助手类,该jar中的方法是从EAR模块本身调用的。现在这个jar还有一个类文件,它具有相同的静态变量,这些变量再次通过init()方法初始化。变量名称与EAR模块中给出的名称相同。因此,当我在EAR文件中处理这个场景时,我发现一旦代码流经该jar,变量值就会被覆盖。我这里的问题是,如果我在jar中有一个不同的包结构,它会有帮助吗


相同的类文件是我的日志文件,我正在初始化该类文件中的日志附加程序。我在EAR模块和jar文件中有相同的包结构

您有两个名称和包相同的类?如果您更改其中一个,那么它将自然工作……下面是完整的场景:我有一个模块X.ear,它有一些EJB和其他帮助程序类,以及帮助程序的jar文件。它有自己的log4jX文件。它有一个日志文件,用于初始化我的记录器。现在,我从这个X.ear模块中取出EJB,并将其放在一个新的Y.ear中。现在,我希望将新EAR模块的日志放入新的日志文件中。所以我准备了一个新的log4jY文件。但是EJB类所需的jar中仍然有LOG.java类。有些具有相同的包结构,但jar文件具有不同的包结构。因此,当代码流经该jar文件时,我的日志再次开始转到旧的日志文件。Log4j设置是静态的,因此这是预期的。首先,您不应该将log4j.properties/xml文件打包到JAR中。如果这不是一个选项,那么日志文件取决于类加载顺序,这显然会在以后从JAR加载设置。