我正在使用javassist的 HotSwap 功能,它需要类路径中的 tools.jar,所以我-cp tools.jar
在启动我的 OSGi 应用程序时添加了。但是当我new HotSwap()
在其中一个包的代码中时,
java.lang.NoClassDefFoundError: com.sun.jdi.Bootstrap
被抛出。com.sun.jdi.Bootstrap
在 tools.jar 中,我已经将它添加到类路径中,并且我验证了它是否有效,因为如果没有,以下代码将不起作用:
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
HotSwapper 的 Classloader 无法加载类com.sun.jdi.Bootstrap
?那为什么它在我的 Eclipse 环境中正常工作?(我将 tools.jar 添加到构建路径的库中)
关于为什么 NoClassDefFoundError,任何线索都值得赞赏。