我正在使用反射调用方法。为此,在运行时,我:
1)加载包含声明方法
的类的JAR文件loader = (URLClassLoader) ClassLoader.getSystemClassLoader();
Class urlClass = URLClassLoader.class;
Method method = urlClass.getDeclaredMethod("addURL", new Class[]{URL.class});
method.setAccessible(true);
method.invoke(lLoader, new Object[] {lJarFile.toURI().toURL()});
2)调用方法
lExternalMethod.invoke(lClass.newInstance());
3)方法调用工作并执行它应该做的事情,但我在控制台中得到以下内容:
log4j:WARN No appenders could be found for logger (JarName)
log4j:WARN Please initialize the log4j system properly
我不在我的应用程序中使用log4j,但我正在加载调用该方法的JAR。我调用的方法有多行:
Logger.GetLogger().Log("Msg", "Msg description");
此外,JAR还包含log4j.properties文件。
有没有办法解决这个问题?
答案 0 :(得分:1)
提供一个Log4J配置文件,或者只是忽略它 - 这是一个无害的警告,说没有Log4J配置文件。 (是的,有,但显然没有一个定义根appenders等。)你应该只在启动时看到该消息。