Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在我的项目中使用源自jar文件的类_Java_Eclipse_Jar_Classpath - Fatal编程技术网

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

Java 在我的项目中使用源自jar文件的类,java,eclipse,jar,classpath,Java,Eclipse,Jar,Classpath,我在Windows764X机器上使用Eclipse。我研究过这个问题,发现很多人都有类似的问题,但我遇到的解决方案对我来说没有什么效果 我正在做一个名为作业\u 1的项目,在一个名为渗流的类上。我想使用对象WeightedQuickUnionUF,它位于jar文件中包含的包中,名为algs4.jar 我似乎已经将我感兴趣的Jar文件添加到构建路径中(它现在显示在“引用库”下)。jar文件algs4.jar位于项目文件夹中名为lib的文件夹中 但是,当我试图在类中声明类型为WeightedQuic

我在Windows764X机器上使用Eclipse。我研究过这个问题,发现很多人都有类似的问题,但我遇到的解决方案对我来说没有什么效果

我正在做一个名为
作业\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
类有关?我的项目中目前没有。无论如何,你知道我的项目设置有什么问题吗?无论如何,感谢您的输入。:)事实上,您是对的,不允许从默认包导入类。这会导致编译错误,只需更新我的答案,也可以在默认包中创建您自己的类,应该可以正常工作