未设置UCANACCESS_HOME系统变量

时间:2015-12-25 16:38:51

标签: java jdbc ucanaccess

我尝试使用UCanAccess将Java应用程序连接到Access数据库但是当我运行Java应用程序时出现错误

  

UCANACCESS_HOME系统变量未定义...

我已将六个jar文件添加到NetBeans中的项目库中。我还将存储ucanaccess-3.0.3.jar文件的目录的路径添加到Windows 10中的PATH系统变量。我还尝试创建一个新的系统变量UCANACCESS_HOME而没有运气。

任何有助于我指向正确方向的帮助都将非常感激。

3 个答案:

答案 0 :(得分:3)

你可以

(1)确保您的CLASSPATH在" lib"中包含ucanaccess-x.x.x.jar 四(4)个jar文件。 UCanAccess发行版的目录,

(2)确保您的CLASSPATH包含只是来自"加载程序的ucanload.jar"文件夹,并在启动Java虚拟机时设置名为UCANACCESS_HOME的Java system property,例如,使用-Dproperty=value开关

-DUCANACCESS_HOME=<directory into which you unpacked the UCanAccess binary distribution>

也就是说,UCANACCESS_HOME必须在解压缩UCanAccess分发zip文件后指向直接包含ucanaccess-x.x.x.jar的目录。例如:

-DUCANACCESS_HOME=/home/gord/Downloads/JDBC/UCanAccess-3.0.1-bin

这两种配置是互斥的。 第一个是普遍采用的。

第二个利用JDBC驱动程序类加载机制,以便使用不同的类加载器加载依赖项。如果应用程序已经使用特定版本的HSQLDB,commons-lang,commons-logging和/或Jackcess,则可以使用ucanload.jar来避免应用程序最终使用的那些jar的不同版本之间的冲突。换句话说,使用这种方法可以确保您的应用程序继续使用之前使用的HSQLDB,commons-lang,commons-logging和/或Jackcess的(其他)版本,而UCanAccess使用其分发中的那些

答案 1 :(得分:1)

感谢jamadei的帮助。

我确定问题出在我的代码中.mdb文件的路径上。我没有使用相对路径,而是使用绝对路径。这对Ucanaccess驱动程序来说不是问题。

另外,我需要从项目中删除ucanload jar。

答案 2 :(得分:0)

经过多次尝试,我终于找到了解决方案... 尝试创建一个新数据库并重新启动数据库和文本编辑器