如何在 AIX 5.3 上正确加载 DB2 驱动程序
我在 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
尝试通过在命令中添加
-Djava.library.path=/home/fpeSM/sqllib/lib64:...
来告诉 Java DB2 本机库的位置。您的 PATH 和 CLASSPATH 变量和命令引发了一些问题:在路径上可用吗?
在 CLASSPATH 中可用。
db2java.zip
提供 DB2 JDBC 类型 2 和 4驱动程序,
db2jcc.jar
提供 DB2 JDBC 类型 4 驱动程序。数据库2在版本后期 8 左右取消了类型 2 JDBC 驱动程序
或早9点。
库是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:available on the PATH?
available on the CLASSPATH.
db2java.zip
provides the DB2 JDBC type 2 and 4drivers and
db2jcc.jar
provides the DB2 JDBC type 4 driver. DB2did away with the type 2 JDBC driver somewhere around version late-8
or early-9.
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.甚至,
Even,