2010-01-13 66 views
1

我有一个运行java plugin2的java applet应用程序。小程序配置使用JNLP文件,由next-generation java plugin体系结构支持。带java applet和java plugin2的log4J

Sun在java webstart(或java applet)应用程序的上下文中声明您should not use Class.forName

但我猜Log4j是根据我的log4j.properties配置来配置记录器。所以我得到了很多狡猾的例外,我几乎可以肯定它与此有关。

  1. 是否有可能改变log4j行为不使用Class.forName?
  2. 我实际上使用由log4j支持的slf4j。如果我更改为logback,我会遇到同样的问题吗?
+0

Log4j正确执行此操作,而不是调用Class.forName。所以这是别的。 – tuler 2010-01-13 17:09:47

+0

Class.forname在一个applet中很好,至少我在几年内在几个Applets中一直没有错误地使用它。为什么不添加例外? – Pool 2010-01-13 20:34:48

+0

我认为限制是只有当你使用JNLP文件来声明applet的jar资源时(这只在新的java插件6u10 +中是可能的) – tuler 2010-01-13 22:52:21

回答

0

我们在司汤达有同样的问题。作为解决方法,您可以在初始化log4j之前设置log4j.ignoreTCL系统属性:

System.setProperty("log4j.ignoreTCL", "true");