Jython 2.2 - 访问类.getPackage()时的java.lang.ExceptionInInitializerError

时间:2017-06-21 03:43:54

标签: java python packages jython jython-2.2

我有一个带有静态块的Java类myObj,如下所示:

static{
    Class<myObj> klass = myObj.class;
    log.info("\nClientAPIVersion   : "+ klass.getPackage().getImplementationVersion());    
}

我正在jython 2.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'。为什么例外?

问题的根源是什么?我该如何解决?感谢

0 个答案:

没有答案