问题:
我在maven jar模块中有一个java.util.prefs的自定义实现。 我将系统属性提供给 -djava.util.prefs.PreferencesFactory = com.blah.CustomePrefsFactory 到我使用自定义首选项的Spring启动应用程序。
当Spring启动应用程序第一次使用Preferences时,Java.util.Preferences.java尝试使用以下命令加载CustomePrefsFactory ClassLoader.getSystemClassLoader()。
这会导致错误,因为嵌套的jar类不适用于spring boot app的系统类加载器。
有没有办法让嵌套的jar类可用于系统类加载器?
答案 0 :(得分:0)
简短的回答是否定的。
系统ClassLoader
委托Bootstrap ClassLoader
和Extension ClassLoader
,然后尝试从类路径加载类,但不从嵌套的JAR加载。
您必须实施或使用支持该功能的现有ClassLoader
。