Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.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
我想在64位machione上实现ms access与java的无dsnless连接_Java_Database_Ms Access_Connection_64 Bit - Fatal编程技术网

我想在64位machione上实现ms access与java的无dsnless连接

我想在64位machione上实现ms access与java的无dsnless连接,java,database,ms-access,connection,64-bit,Java,Database,Ms Access,Connection,64 Bit,我想在64位机器上实现ms access与java的无dsnless连接。我在32位上使用了以下代码: Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection MSA_con = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)}; Dbq=C:\\data\\data.mdb"); 这段代码只在32位机器上工作,现在我换成64

我想在64位机器上实现ms access与java的无dsnless连接。我在32位上使用了以下代码:

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection MSA_con = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)}; Dbq=C:\\data\\data.mdb");
这段代码只在32位机器上工作,现在我换成64位机器,这段代码给出了以下错误:

java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
我为所有这些做了很多RND,但无法修复它。对于64位机器,我不知道从哪里获得64位ODBC驱动程序以及如何在我的机器上安装它。我必须使用jdk 64位还是必须安装microsoft ace驱动程序,还是应该使用其他连接字符串?
我的机器是64位Windows7Ultimate,ms access 2007,jdk 32位。

如果应用程序调用
System.getProperty(“sun.arch.data.model”)
并返回
64
,则应用程序在64位JVM下运行。在这种情况下,您在问题中引用的连接字符串将不起作用,因为没有64位版本的旧Microsoft Jet ODBC驱动程序。您也无法下载和安装64位版本的较新Access数据库引擎(ACE)驱动程序,因为您的计算机上已经有32位版本。您需要将应用程序配置为在32位JVM下运行。

如果您的Java应用程序确实在64位Windows计算机上的32位JVM下运行,那么您现有的连接字符串应该可以工作。让Java应用程序向您显示
System.getProperty(“sun.arch.data.model”)
返回的值以进行验证。您的另一条评论说
System.getProperty(“sun.arch.data.model”)
没有返回任何内容。我的理解是,根据调用它的应用程序是在32位还是64位JVM下运行,它必须返回一些内容,或者是
32
或者
64
。再试一次。是的,它返回64。。。。。