Class.forName(Class) 在特定目录中?

Posted

技术标签:

【中文标题】Class.forName(Class) 在特定目录中?【英文标题】:Class.forName(Class) in a specific directory? 【发布时间】:2014-10-06 22:25:20 【问题描述】:

在测试我正在开发的写入 SQLite 数据库的程序时,我注意到如果我将 sqlite.jar 文件移动到子目录,Class.forName("org.sqlite.JDBC") 会抛出 ClassNotFoundException。有没有办法可以更改Class.forName("org.sqlite.JDBC") 正在查找的目录,以便我可以将文件存储在我想要的位置?

【问题讨论】:

哈哈。是构建路径中的 sqlite.jar 吗? Class.forName 不是在寻找目录,而是在您的类路径中寻找一个类 【参考方案1】:

看起来类路径设置为使用该位置。如果您使用的是 IDE,请将库添加到项目属性中的构建路径,然后执行您的代码。 IDE 将完成您需要做的其余事情。

如果您正在使用类路径设置,则不应将文件从指定类文件的类路径中移动,您的程序将寻找要加载的所需类。

【讨论】:

谢谢,忘记更新项目属性中的位置对我来说是愚蠢的。

以上是关于Class.forName(Class) 在特定目录中?的主要内容,如果未能解决你的问题,请参考以下文章

Class.forName()

Class.forName 似乎仍然是必要的

class.forname()的作用

Class.forName() 初始化Thread.currentThread().getContextClassLoader().getResourceAsStream

Java中Class.forName()用法详解

java Class.forName()