Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
生成Java程序后出现Microsoft ODBC错误_Java_Sql_Ms Access_Odbc_Dsn - Fatal编程技术网

生成Java程序后出现Microsoft ODBC错误

生成Java程序后出现Microsoft ODBC错误,java,sql,ms-access,odbc,dsn,Java,Sql,Ms Access,Odbc,Dsn,我制作了一个小Java应用程序,它将数据写入Access数据库。 当我在Eclipse中运行它时,它工作得很好,但当我使用Maven构建它并运行它时,它失败了。 当我尝试访问数据库时,会出现以下错误: [Microsoft][ODBC管理器]数据源 找不到名称,也没有默认驱动程序 指定的 我知道这是一个常见的错误,但有太多模糊的解决方案,我太困惑,无法得到修复 我没有用户DSN或系统DSN,据我所知,我也没有运行的SQL server 我不知道下一步该做什么。您可能使用带有相对.mdb文件名的连

我制作了一个小Java应用程序,它将数据写入Access数据库。 当我在Eclipse中运行它时,它工作得很好,但当我使用Maven构建它并运行它时,它失败了。 当我尝试访问数据库时,会出现以下错误:

[Microsoft][ODBC管理器]数据源 找不到名称,也没有默认驱动程序 指定的

我知道这是一个常见的错误,但有太多模糊的解决方案,我太困惑,无法得到修复

我没有用户DSN或系统DSN,据我所知,我也没有运行的SQL server


我不知道下一步该做什么。

您可能使用带有相对.mdb文件名的连接字符串。您可以使用完整文件名:

jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=c:\\Nwind.mdb

假设机器是64位的,想知道这是否是位问题

我怀疑这更多的是关于使用哪个Java运行时环境来执行构建的应用程序,而不是关于使用什么来实际构建它

Microsoft只有一个32位ODBC访问驱动程序——因此,除非Java应用程序在32位JRE中运行,否则我怀疑它将无法与桥的32位本机C部分接口,而桥的32位本机C部分反过来将加载32位ODBC驱动程序


只是想一想…

嗯,你的数据库有ODBC连接字符串吗?你是对的,不过我后来才发现。无论如何,谢谢你的帮助;对于64位,您应该能够使用64位版本的ACE,它可以下载和再发行。它与旧的文件格式MDB向后兼容,而不仅仅限于新的ACCDB格式。