问题的原因是
-Djava.endorsed.dirs=$PROJECTHOME/target/lib
org.springframework.beans.factory.support.DefaultListableBeanFactory包含以下代码:
static { ClassLoader cl = DefaultListableBeanFactory.class.getClassLoader(); try { javaxInjectProviderClass = cl.loadClass("javax.inject.Provider"); //Line 103 } catch (ClassNotFoundException ex) { // JSR-330 API not available - Provider interface simply not supported then. }}这会导致产生
NullPointerException,因为当通过加载类时会
getClassLoader()返回。从javadoc:
null``-Djava.endorsed.dirs
一些实现可能使用null来表示引导类加载器。
因此,请使用
-classpath(明确标明所有jar),而不是
-Djava.endorsed.dirs



