我尝试使用UCanAccess将Java应用程序连接到Access数据库但是当我运行Java应用程序时出现错误
UCANACCESS_HOME系统变量未定义...
我已将六个jar文件添加到NetBeans中的项目库中。我还将存储ucanaccess-3.0.3.jar文件的目录的路径添加到Windows 10中的PATH系统变量。我还尝试创建一个新的系统变量UCANACCESS_HOME而没有运气。
任何有助于我指向正确方向的帮助都将非常感激。
答案 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)
经过多次尝试,我终于找到了解决方案... 尝试创建一个新数据库并重新启动数据库和文本编辑器