可能是我在问一个常见问题,但实际上我没有弄错我做错了什么,当我尝试通过Jaybird与Firebird DB连接时,我可能会忘记什么。我已经将Jaybird.jar添加到我的Java构建路径中,但仍然收到错误java.lang.NoClassDefFoundError。

这是我的简单代码:

public class DBHelper {


    public void tryConnect() {
       try {
           Class.forName("org.firebirdsql.jdbc.FBDriver");
       } catch (ClassNotFoundException cnfe) {
           System.out.println(cnfe.toString());
           System.out.println("org.firebirdsql.jdbc.FBDriver not found");
       }
   }
}

最佳答案

没有完整的异常消息,这是一个猜测,但是您可能会收到错误“ java.lang.NoClassDefFoundError:javax / resource / ResourceException”,这意味着您缺少必需的依赖项connector-api-1.5.jar(包含在的lib文件夹中) Jaybird发布zip)。

您有两种选择:


connector-api-1.5.jar添加到类路径,或者
请改用jaybird-full-2.2.7.jar(它包含connector-api-1.5.jar中的类)。


部署到应用程序服务器时,因为已经提供了connector-api,所以这不是必需的。您仅应在运行独立应用程序时使用jaybird-full-2.2.7.jar。当部署到应用服务器时,javax.resource包中类的存在可能会阻止类加载器使用您的jar / war文件。

另请参见Jaybird release notes, section Distribution package

全面披露:我是Jaybird的开发人员

07-24 21:40