在Eclipse中导入库

时间:2014-09-01 12:33:19

标签: java eclipse opencsv

我有一个Eclipse项目,我将库“OpenCSV”作为外部JAR导入。该库现在显示在我的项目“参考库”下。

然而,当我打电话时:

CSVReader reader = new CSVReader(new FileReader(csvPath));

Eclipse抛出一个错误,指出没有定义构造函数CSVReader。 csvPath的类型为String。

有什么想法吗?

编辑:截图

My workspace

5 个答案:

答案 0 :(得分:5)

我可能会弄错(我不会使用此库并且不知道其软件包名称的历史记录),但看起来autoEvoSuite是您自己的软件包。

如果是这种情况那么你有类名冲突 (实际上没有冲突,你只是使用了错误的类),因为你的类也被命名为{{ 1}}所以在方法CSVReader内你不是调用readCVS的构造函数,而是调用自己类au.com.bytecode.opencsv.CSVReader的构造函数,因为你的类没有

autoEvoSuite.CSVReader

构造函数,编译器会通知您这个问题。

要解决此问题,请考虑重命名您的类,或者通过编写其完整的包名来明确说明您要使用哪个类

public CSVReader(FileReade reader){...}

答案 1 :(得分:2)

你必须尝试捕获FileNotFoundException并查看下面的代码。

public FileReader(String fileName) throws FileNotFoundException {
    super(new FileInputStream(fileName));
}

你可以修改它,如下面的

   try {
        CSVReader reader = new CSVReader(new FileReader(csvPath));
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }

答案 2 :(得分:2)

您正在为自己的类CSVReader调用一个不存在的构造函数!重命名您的班级并创建au.com.bytecode.opencsv的新实例,或删除相应的行,确保导入au.com.bytecode.opencsv.CSVReader,然后重新创建该行。

或者 - 但我不确定这是否是你想要的 - 你可以使CSVReader(最好用另一个名字),扩展au.com.bytecode.opencsv.CSVReader并覆盖相应的构造函数。

我猜您的问题是因为CSVReader使用自动完成而未选择正确包中的类而引起的?

答案 3 :(得分:0)

您需要在项目的构建路径中添加相关的JAR才能构建它。

您的Java项目(右键单击) - >属性 - > Java构建路径 - >图书馆 - >添加JAR /添加外部JAR

enter image description here

答案 4 :(得分:0)

My full solution is listed here,尝试使用CSVParser instead,可以从Apache Commons获得,并且更容易使用!