如何在AIX 5.3上正确加载DB2驱动程序

时间:2011-07-19 08:18:15

标签: java jdbc db2 aix

我遇到了从AIX5.3上的JAVA应用程序加载DB2驱动程序的烦人问题,我得到的是:

java.sql.SQLException:java.lang.UnsatisfiedLinkError:db2jdbc(路径名中的文件或目录不存在。)         在COM.ibm.db2.jdbc.app.DB2Driver。(未知来源)         at java.lang.Class.newInstanceImpl(Native Method)         在java.lang.Class.newInstance(Class.java:1243)         在com.hp.sm.doctor.collection.commandLineConsole.CommandLineEntryMain.main(CommandLineEntryMain.java:143)

我google了很多,似乎我已经设置了一切,但这个例外不会消失.. 这是详细信息: 的 PATH =的/ usr / Java5的/ bin中:在/ usr / bin中:/等:/ usr / sbin目录:在/ usr / UCB:在/ usr / bin中/ X11:/ sbin目录:在/ usr / java14 / JRE /斌:在/ usr / java14 /斌:/家庭/ scuser / SC6283 / RUN:/家庭/ fpeSM / SQLLIB /斌:/家庭/ fpeSM / SQLLIB / ADM:/家庭/ fpeSM / SQLLIB /杂项 的 CLASSPATH = /家庭/ fpeSM / SQLLIB / JAVA / db2java.zip:/home/fpeSM/sqllib/java/db2jcc.jar:/home/fpeSM/sqllib/java/sqlj.zip:/家/fpeSM/sqllib/function:/home/fpeSM/sqllib/java/db2jcc_license_cu.jar :. 的 LIBPATH = / usr / lib中:/ lib中:/家庭/ fpeSM / SQLLIB / lib64下

我按

运行我的脚本

java -cp /home/fpeSM/sqllib/java/db2java.zip:/home/fpeSM/sqllib/java/db2jcc.jar:/home/fpeSM/sqllib/java/sqlj.zip:/home/fpeSM/ sqllib / function:/ home / fpeSM / sqllib / lib32:/home/fpeSM/sqllib/java/db2jcc_license_cu.jar:::smdoctor.jar com.hp.sm.doctor.collection.commandLineConsole.CommandLineEntryMain

任何人都可以告诉我让整个事情发挥作用的要点是什么?非常感谢! P.S.,libdb2jdbc.so存在于/ home / fpeSM / sqllib / lib64下。

即使

2 个答案:

答案 0 :(得分:0)

甚至,

  1. db2java.zip文件的内容是什么?
  2. 请解压缩并查看它有任何jar文件和本机二进制文件。将jar文件放在路径中的类路径和二进制文件中。
  3. 如果zip只包含jar文件,请将所有这些jar文件放在classpath中。
  4. 将zip文件放在classpath中不会将jar放在classpath中。您将解压缩jar文件并将它们放在类路径中。

答案 1 :(得分:0)

通过向命令添加-Djava.library.path=/home/fpeSM/sqllib/lib64:...,尝试告诉Java本地库所在的位置。您的PATH和CLASSPATH变量和命令引发了一些问题:

  • 为什么你会有两个不同版本的Java(1.4和5) 可以在PATH上找到吗?
  • 似乎有两个版本的DB2驱动程序 可在CLASSPATH上找到。 db2java.zip提供DB2 JDBC类型2和4 drivers和db2jcc.jar提供了DB2 JDBC type 4驱动程序。 DB2 在8版晚期版本的某个地方取消了2型JDBC驱动程序 或早9点。
  • 是否安装了32位和64位库?如果你正在运行32位Java,请确保你的 库是一个32位的库。我不熟悉AIX,但对于Linux,我会使用file libdb2jdbc.so来检查它是32位还是64位库。