可能是我在问一个常见问题,但实际上我没有弄错我做错了什么,当我尝试通过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的开发人员