Hsqldb的dump功能
从官网下的hsqldb.jar包是不包含dump功能的.在HSQL Database Manager窗口(DatabaseManagerSwing)上选择菜单dump,会看到在cmd里面都是异常,提示Transfer类不存在.进入lib/hsqldb.jar查看,在org.hsqldb.util包下,的确是没有Transfer有关的类.
将hsqldb源代码导入Eclipse,发现,Transfer.java是有的.看来只能自己从源码导出一个jar,再使用dump功能了.
解决源码的依赖很容易,因为,hsqldb只对servlet.jar依赖,这个在lib文件夹下可以找到.
导出jar包后,发现,dump功能可以正常使用了.
dump功能是可以用了,回头去查hsqldb的代码
static { try { Class.forName(DatabaseManagerSwing.class.getPackage().getName() + ".Transfer"); TT_AVAILABLE = true; } catch (Throwable t) { //System.err.println("Failed to get " //+ DatabaseManagerSwing.class.getPackage().getName() //+ ".Transfer: " + t); // Enable this print statement for debugging class access problems. } }
哈哈,原来如此,在代码中先判断了在classpath下是否有Transfer这个类,有就将TT_AVAILABLE置为true.
相应的,为了实现兼容性,很多应用中都有类似的代码:
http://lggege.iteye.com/admin/blogs/163541
页:
[1]