Java 在我的项目中使用源自jar文件的类
我在Windows764X机器上使用Eclipse。我研究过这个问题,发现很多人都有类似的问题,但我遇到的解决方案对我来说没有什么效果 我正在做一个名为Java 在我的项目中使用源自jar文件的类,java,eclipse,jar,classpath,Java,Eclipse,Jar,Classpath,我在Windows764X机器上使用Eclipse。我研究过这个问题,发现很多人都有类似的问题,但我遇到的解决方案对我来说没有什么效果 我正在做一个名为作业\u 1的项目,在一个名为渗流的类上。我想使用对象WeightedQuickUnionUF,它位于jar文件中包含的包中,名为algs4.jar 我似乎已经将我感兴趣的Jar文件添加到构建路径中(它现在显示在“引用库”下)。jar文件algs4.jar位于项目文件夹中名为lib的文件夹中 但是,当我试图在类中声明类型为WeightedQuic
作业\u 1
的项目,在一个名为渗流的类上。我想使用对象WeightedQuickUnionUF
,它位于jar文件中包含的包中,名为algs4.jar
我似乎已经将我感兴趣的Jar文件添加到构建路径中(它现在显示在“引用库”下)。jar文件algs4.jar
位于项目文件夹中名为lib
的文件夹中
但是,当我试图在类中声明类型为WeightedQuickUnionUF
的对象时,我得到一个错误“WeightedQuickUnionUF
无法解析为类型”
在类声明之前,我尝试了各种import
命令(仅包括import-WeightedQuickUnionUF
),所有这些命令都会产生错误“导入so和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
这让我困惑了整整一天,我似乎无法理解这一点。谢谢你的努力
编辑:这里有一个指向我想要导入的类的链接:假设您谈论的是该类的algs4.jar,那么您的导入是不正确的,您应该执行以下操作:
import WeightedQuickUnionUF;
但是在默认包中包含类从来都不是一个好主意,实际上不允许从未命名包导入类型:这会导致编译错误。
:
类型按需进口声明(§7.5.2)进口所有
根据需要可访问(§6.6)命名类型或包的类型这是一个
从未命名包导入类型时出现编译时错误
因此,在您的情况下,要解决您的问题,只需在默认包中创建类,这样您就不必进行导入。我在同一个类中,遇到了相同的问题。删除这两条语句的等效项
package assignment_1_package;
import algs4.WeightedQuickUnionUF;
解决了问题。也就是说,下面的问题现在得到了正确的解决
private WeightedQuickUnionUF model;
就我而言,这有助于增加
import edu.princeton.cs.algs4.StdRandom;
import edu.princeton.cs.algs4.StdStats;
import edu.princeton.cs.algs4.WeightedQuickUnionUF;
你能分享加权的QuickUnionUF类吗?这里是:Okay的副本!!!非常感谢弗雷德。我尝试了导入,但也遇到了同样的错误。你说得对,这就是我得到jar文件的地方。当我展开jar文件以查看其类时,首先必须单击(默认包)
。它不是一个包吗?您的Eclipse项目设置一定有问题。它是否与拥有main
类有关?我的项目中目前没有。无论如何,你知道我的项目设置有什么问题吗?无论如何,感谢您的输入。:)事实上,您是对的,不允许从默认包导入类。这会导致编译错误,只需更新我的答案,也可以在默认包中创建您自己的类,应该可以正常工作