在我的项目中使用源自jar文件的类

时间:2013-10-05 15:53:25

标签: java eclipse jar classpath

我在Windows 7 64x计算机上使用Eclipse。我研究了这个问题,发现很多人都有类似的问题,但我遇到的解决办法对我来说都没有。

我正在一个名为Assignment_1的名为Percolation的项目上工作。我想使用名为WeightedQuickUnionUF的jar文件中包含的包内的algs4.jar对象。

我似乎已将我感兴趣的Jar文件添加到构建路径(现在显示在“Referenced Libraries”下)。 jar文件algs4.jar位于项目文件夹中名为lib的文件夹中。

但是,当我尝试在我的类中声明类型为WeightedQuickUnionUF的对象时,我收到错误“WeightedQuickUnionUF无法解析为类型”。

我在类声明之前尝试了各种import命令(包括import WeightedQuickUnionUF},并且所有这些命令都会产生错误“导入so and so无法解析”。

例如,这段代码会产生这两个错误。一个位于import行,另一个位于WeightedQuickUnionUF对象的声明:

package assignment_1_package;
import algs4.WeightedQuickUnionUF;

public class Percolation {

    private int[][] grid;
    public int gridDimension;
    private int opensGrid[][];
    private WeightedQuickUnionUF model;

... //rest of class body here

这让我困惑了一整天,我似乎无法弄清楚这一点。谢谢你的努力。

编辑:这是我要导入的课程的链接:http://algs4.cs.princeton.edu/15uf/WeightedQuickUnionUF.java.html

3 个答案:

答案 0 :(得分:3)

假设您正在讨论类http://algs4.cs.princeton.edu/code/的algs4.jar,您的导入操作不正确:

import WeightedQuickUnionUF;

但是在默认包中加入类并不是一个好主意,实际上不允许从未命名的包中导入类型:这会产生编译错误http://docs.oracle.com/javase/specs/jls/se5.0/html/packages.html#7.4.2

  

按需输入类型声明(第7.5.2节)导入所有   根据需要可访问(第6.6节)命名类型或包的类型。 这是一个   编译时错误从未命名的包导入类型

因此,在您的情况下解决您的问题只需在默认包中创建您的类,这样您就不必进行导入了。

答案 1 :(得分:0)

我在同一个班级,遇到同样的问题。删除我对这两个陈述的等价物

 package assignment_1_package; 
    import algs4.WeightedQuickUnionUF;

解决了这个问题。这就是说以下现在正确地解决了

 private WeightedQuickUnionUF model;

答案 2 :(得分:0)

就我而言,它有助于添加

import edu.princeton.cs.algs4.StdRandom;
import edu.princeton.cs.algs4.StdStats;
import edu.princeton.cs.algs4.WeightedQuickUnionUF;