【问题标题】:How to get DB2 driver load correctly on AIX 5.3如何在 AIX 5.3 上正确加载 DB2 驱动程序
【发布时间】:2011-10-08 07:42:16
【问题描述】:

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

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

我用谷歌搜索了很多,似乎我已经准备好了一切,但这个例外不会消失.. 以下是详细信息: PATH=/usr/java5/bin:/usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin:/usr/java14/jre /bin:/usr/java14/bin:/home/scuser/SC6283/RUN:/home/fpeSM/sqllib/bin:/home/fpeSM/sqllib/adm:/home/fpeSM/sqllib/misc CLASSPATH=/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/java/db2jcc_license_cu.jar:。 LIBPATH=/usr/lib:/lib:/home/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 下。

偶数

【问题讨论】:

    标签: java jdbc db2 aix


    【解决方案1】:

    甚至,

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2012-06-20
        • 1970-01-01
        • 2011-04-26
        • 1970-01-01
        • 2014-07-23
        • 1970-01-01
        • 1970-01-01
        • 2016-12-02
        • 2023-03-28
        相关资源
        最近更新 更多