You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

开发Eclipse插件时遇SMBJ类未找到:ClassNotFoundException异常

解决Eclipse插件运行时找不到SMBJ类的问题

以下是排查和解决的关键步骤:

  • 检查OSGi包导入配置
    Eclipse插件基于OSGi框架,仅配置Bundle-Classpath不足以让类加载器找到SMBJ的类,必须在MANIFEST.MF的Import-Package中声明所需的SMBJ包,比如:

    Import-Package: com.hierynomus.smbj,
     com.hierynomus.smbj.auth,
     com.hierynomus.smbj.connection,
     // 按需添加其他用到的SMBJ子包
    

    注意要覆盖插件代码中实际用到的所有SMBJ相关包。

  • 确认Bundle-Classpath与build.properties的一致性
    确保MANIFEST.MF的Bundle-Classpath正确指向嵌入的SMBJ及其依赖jar,例如如果jar放在插件项目的lib目录下,配置应为:

    Bundle-Classpath: .,
     lib/smbj.jar,
     lib/smbj-utils.jar,
     // 其他依赖jar
    

    同时在build.properties的bin.includes中包含这些jar路径:

    bin.includes = META-INF/,
                  .,
                  lib/smbj.jar,
                  lib/smbj-utils.jar
    
  • 验证导出插件的内容完整性
    解压导出的插件jar文件,检查是否包含SMBJ及其依赖jar(比如在lib目录下),或者确认SMBJ的类文件是否被正确打包到插件jar中。如果jar未被包含,说明导出配置有误,需重新检查导出向导的设置,确保勾选了包含第三方库。

  • 排查依赖缺失
    SMBJ依赖其他库(如slf4j、bouncycastle等),确保这些依赖也被嵌入到插件中或通过Import-Package导入对应的OSGi包。如果依赖库未正确包含,会间接导致SMBJ类无法加载。

  • 考虑使用Tycho构建插件
    手动管理OSGi依赖容易出错,建议使用Tycho(基于Maven的Eclipse插件构建工具),通过Maven依赖引入SMBJ,Tycho会自动处理OSGi的Import-Package和打包配置,减少手动配置的失误。

内容的提问来源于stack exchange,提问作者jrao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 10:12:25