【发布时间】:2016-05-01 07:19:18
【问题描述】:
所以我正在构建一个 minecraft 插件,插件的一部分从 mysql 中抓取一堆块数据,并在服务器启动时将其加载到缓存中。我有一些在 Eclipse 测试用例中运行良好的代码。但是,当我在本地 minecraft 服务器中加载插件时,我得到了异常。
抛出异常的代码位。
rs.getObject( field.getName(), p.fieldType());
rs 是从执行查询返回的java.sql.ResultSet 实例。
p.fieldType() 只返回一个Class<?>
稍微大一点的 sn-p... 并不是说它真的向您展示了其他任何东西。
if (field.isAnnotationPresent(Persist.class)) {
try {
Persist p = field.getAnnotation(Persist.class);
Object o = rs.getObject( field.getName(), p.fieldType());
field.set(m,p.fieldType().cast(o));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
我看过网上的人说要修复我需要包含 ojdbc6.jar 并将其用作我的连接驱动程序。
我将文件添加到文件夹 lib 下的项目结构中,将其包含到我的项目中,然后将其添加到我的构建文件中。
http://i.imgur.com/7TXLbjj.png
并将连接驱动程序更改为oracle.jdbc.OracleDriver
但是,我遇到了同样的问题,似乎没有解决办法。 虽然很可能我做错了。
谁能帮助我,有什么见解等吗?
编辑**
从命令行
$ java -version
java version "1.8.0_51"
Java(TM) SE Runtime Environment (build 1.8.0_51-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)
来自日食
System.out.println(System.getProperty("java.runtime.version"));
返回 1.8.0_51-b16
但是两者都在同一台 PC 上,所以我期望相同的值?
【问题讨论】:
-
我认为可能存在 JDK 问题。您在本地机器上使用哪个 JDK 版本,在服务器上使用哪个版本?请看这篇文章:stackoverflow.com/questions/7692320/…
-
似乎是 1.8.0_51 应该没问题,其他答案与我的情况无关,我不认为。
-
Ojdbc16.jar 是 oracle db 的驱动程序 - 不是 mysql 的驱动程序。在dev.mysql.com/downloads/connector/j 上查看最新的 mysql 驱动程序,看看是否有帮助
-
是的,我用的是什么:/
-
它在 eclipse 中工作,而不是在 minecraft 环境中
标签: java mysql eclipse jdbc minecraft