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

发布于 2024-11-25 03:26:15 字数 1378 浏览 4 评论 0原文

我在 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 /垃圾桶: /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

谁能告诉我使整个事情正常进行的要点是什么?很多很多..谢谢! PS,libdb2jdbc.so 确实存在于 /home/fpeSM/sqllib/lib64 下。

甚至

I am having this annoying problem of loading DB2 driver from a JAVA application on AIX5.3, what I got is this :

java.sql.SQLException: java.lang.UnsatisfiedLinkError: db2jdbc (A file or directory in the path name does not exist.)
at COM.ibm.db2.jdbc.app.DB2Driver.(Unknown Source)
at java.lang.Class.newInstanceImpl(Native Method)
at java.lang.Class.newInstance(Class.java:1243)
at com.hp.sm.doctor.collection.commandLineConsole.CommandLineEntryMain.main(CommandLineEntryMain.java:143)

I googled a lot, seems I am all set with everything, but this exception won't go away..
Here are details:
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

I run my script by

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

Can anyone tell me what's gist to make the whole thing work? Many many.. thanks!
P.S., libdb2jdbc.so DOES exist under /home/fpeSM/sqllib/lib64.

Even

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

月野兔 2024-12-02 03:26:15

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

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

Try telling Java where the DB2 native libraries are located by adding -Djava.library.path=/home/fpeSM/sqllib/lib64:... to your command. Your PATH and CLASSPATH variables and command raises some questions:

  • Why would you have two different versions of Java (1.4 and 5)
    available on the PATH?
  • It seems two versions of the DB2 drivers are
    available on the CLASSPATH. db2java.zip provides the DB2 JDBC type 2 and 4
    drivers and db2jcc.jar provides the DB2 JDBC type 4 driver. DB2
    did away with the type 2 JDBC driver somewhere around version late-8
    or early-9.
  • Are 32-bit and 64-bit libraries installed? If you're running 32-bit Java, make sure your
    library is a 32-bit library. I'm not familiar with AIX, but for Linux I would use file libdb2jdbc.so to check if it's a 32-bit or 64-bit library.
冧九 2024-12-02 03:26:15

甚至,

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

Even,

  1. what are the contents of db2java.zip file ?
  2. Please unzip it and see it it has any jar files and native binaries. Put jar files in classpath and binaries in path.
  3. If the zip contains only jar files, put all of those jar files in classpath.
  4. Putting zip file in classpath will not put jars inside it in classpath. You will have put extract the jar files and put them in classpath.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文