我正在使用反射调用方法。为此,在运行时,I:
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。属性文件。
有办法解决这个问题吗?
提供Log4J配置文件,或者忽略它——这是一个无害的警告,表示没有Log4J配置文件。(是的,有,但显然没有一个定义根追加器等)您应该只在启动时看到该消息。