Java中的“未定义的符号:SQLAllocEnv”错误

时间:2014-02-21 09:47:30

标签: java ms-access jdbc-odbc

我正在使用java构建一个需要使用MS Access的应用程序。 我在运行项目时遇到以下错误:

/usr/lib/jvm/jdk1.7.0/bin/java:符号查找错误:/usr/lib/jvm/jdk1.7.0/jre/lib/i386/libJdbcOdbc.so:undefined symbol:SQLAllocEnv

这是什么意思?

1 个答案:

答案 0 :(得分:2)

正如您在previous question中提到的那样,您正在尝试在Linux(Ubuntu)中进行开发,以便最终部署在Windows上。我怀疑你在没有安装适当的驱动程序软件的情况下尝试在Linux中使用JDBC-ODBC Bridge。

我已经看到很多答案谈论使用unixODBCMDB Tools来操纵Linux下的Access数据库,但是根据我自己的经验,这个问题并没有很好地解决。相反,我会提供以下建议:

  • 如果您正在为Windows开发项目,请在Windows下进行开发。然后,您可以使用JDBC-ODBC Bridge和实际的Microsoft Access ODBC驱动程序。但是,请记住,JDBC-ODBC Bridge已从JDK8中删除,并且不受支持,如上一个答案here中所述。

  • 如果必须在Linux下进行开发,请使用UCanAccess(或者只是Jackcess,UCanAccess将其用作Access数据库的低级接口文件)并在您的应用程序中部署所需的组件。