【发布时间】:2014-07-11 04:43:17
【问题描述】:
我正在尝试通过 JDBC 使用 Eclipse(Juno 版)连接到 IBM DB2 数据库。 我已将驱动程序(外部 jar 文件)添加到我的项目中,并且驱动程序已正确加载...
public static void main(String[] args) throws SQLException, ClassNotFoundException {
Class.forName("com.ibm.db2.jcc.DB2Driver");
System.out.println("Driver loaded");
Connection dbConn = DriverManager.getConnection("jdbc:db2://***.**.***.*:50000/BWUEBDB", "username", "password");
System.out.println("Connected");
}
我也知道连接数据(数据库路径、用户名、密码)是正确的。 但我得到一个 java.lang.NoClassDefFoundError:
Exception in thread "main" java.lang.NoClassDefFoundError: sun/io/UnknownCharacterException
at com.ibm.db2.jcc.b.a.<init>(a.java:238)
at com.ibm.db2.jcc.b.b.a(b.java:1624)
at com.ibm.db2.jcc.c.p.a(p.java:350)
at com.ibm.db2.jcc.c.p.<init>(p.java:404)
at com.ibm.db2.jcc.b.b.<init>(b.java:256)
at com.ibm.db2.jcc.DB2Driver.connect(DB2Driver.java:163)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at AppTest.main(AppTest.java:17)
Caused by: java.lang.ClassNotFoundException: sun.io.UnknownCharacterException
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 9 more
项目属性一定有问题,但我真的不知道去哪里找。
【问题讨论】:
-
您的用户名或密码是否偶然包含非 ASCII 字符?
-
您使用的是什么 JRE?似乎未找到 sun.io.UnknownCharacterException,这可能特定于 Sun/Oracle JRE。您是否尝试过其他方法,例如实例化 com.ibm.db2.jcc.DB2SimpleDataSource 实例?
-
我没有让它与 com.ibm.db2.jcc.DB2SimpleDataSource 一起使用。您能否提供适合我的案例的示例代码?我正在使用 JRE 1.4 顺便说一句。
标签: eclipse jdbc db2 eclipse-juno