我有一个Java类myObj
,带有一个静态块,如图所示:
static{
Class<myObj> klass = myObj.class;
log.info("\nClientAPIVersion : "+ klass.getPackage().getImplementationVersion());
}
我正在Jython2.2中创建这个类的一个实例
当我运行python脚本时使用:
java -Dlog4j.configuration=file://${CLASSPATH}/log4j.xml -jar ~/jython_2.2/jython.jar test.py
我得到一个异常,如下所示:
File "test.py", line 42, in ?
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
java.lang.ExceptionInInitializerError: java.lang.ExceptionInInitializerError
我在网上发现java.lang.ExceptionInInitializerError
是由于静态块中的崩溃造成的
当我删除log.info
时,python代码将正确执行。
我认为klass.getPackage()
可能是null,但如果是这样,它应该在日志中简单地打印'null'。为什么会有例外
问题的根源是什么?我该如何解决?谢谢
目前没有回答
相关问题 更多 >
编程相关推荐