java - 即使导入也找不到类

标签 java eclipse class

我正在开发的程序中有一个类。这是OpenCSV用于读取和处理 csv 文件的类。

它是通过 import au.com.bytecode.opencsv.*; 导入到 Eclipse 中的类路径中的。 Eclipse 没有显示任何错误,并且在此 Class.forName("au.com.bytecode.opencsv.CSVReader", false, null);

上失败

我就是不明白为什么它在这条线上失败了。我什至尝试将所有源代码导入到我的项目中,但总是因 ClassNotFound 错误而失败。这是一个运行在 apache tomcat 6 服务器上的 jsp 应用程序。

最佳答案

您需要完全限定类名称。尝试一下

Class.forName("au.com.bytecode.opencsv.CSVReader", false, null);

来自 Class.forName 的文档:

Given the fully qualified name for a class or interface (in the same format returned by getName) this method attempts to locate, load, and link the class or interface.

import 语句仅在编译时使用。 (字节码中没有 import 的痕迹。)因此,被要求加载 "CSVReader" 的类加载器无法知道您正在谈论哪个包关于(实际上只是在默认包中查找该类)。


关于您的更新...

您需要确保 opencsv 库位于您的 Web 应用程序的类路径上。它在编译期间存在是不够的......

关于java - 即使导入也找不到类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4461977/

相关文章:

Java Eclipse : creating new class but doesn't show git staging

java - 将方法输出从 java 类移动到 HTML

c++ - 在需要之前避免初始化成员

java - 给定一个字符串,生成一个可以解析 *similar* 字符串的正则表达式

java - 使用java在Stripe中为卡充电

java - Windows 更新后 Eclipse 失去 Android 支持

java - Eclipse 中没有控制台窗口

java - 如何提示接口(interface)的植入有一些指定的数据成员?

java - Log4j2 XML系统文件分隔符

java - javafx 警报中 'default' 按钮的 CSS 选择器?