我在 MATLAB 中运行两个 Java 程序,这意味着它们都与 MATLAB 共享同一个 JVM 实例。这是尝试使用 Log4J 时的问题,因为它是静态配置的。如果我运行 PROG1(并且它配置 Log4J),然后运行 PROG2(它也尝试配置 Log4J),那么 PROG2 随后无法将其输出记录到某些版本的 MATLAB 中的正确位置。
我想以某种方式在 Eclipse 中配置 PROG1 的项目以永远禁止使用 Log4J,但在 PROG2 中仍然应该允许它。仅仅从 PROG1 项目的类路径中删除 log4j.jar 并不能解决问题,因为没有办法阻止它作为直接或间接依赖项重新添加。
理想情况下,如果我可以配置项目会很好,这样 Eclipse 将始终在编译时检查并添加标记(如其现有的编译警告和错误),并标记任何 Log4J 访问(包括我们自己的用于配置 Log4J 的实用程序类) 在该项目中带有解释此问题的简短消息。
我能想到的下一个最好的事情是使 Ant 脚本进一步复杂化,但这仍然存在我或其他人将来可能会将 Log4J 日志记录添加到 PROG1 项目并且直到花费大量资金之后才意识到后果的可能性时间和后来运行构建。
有什么想法可以让我永远禁止在特定项目中使用 Log4J,这样它也能在未来得到充分的保护,避免出现同样的问题?