如何在Eclipse中的Referenced Libraries中使用类

时间:2012-08-12 18:35:17

标签: java eclipse

我已将algs4.jar文件作为引用库导入,如上所示。一切似乎都很好,但我似乎无法使用或访问库中的任何类。

我缺少一份导入声明吗?

图片参考:

请注意我是如何尝试使用引用库中的BinarySearch但它没有为我提供使用或导入它的选项。

5 个答案:

答案 0 :(得分:6)

我不确定,我没试过。但是有些解释。

这是一个标准的图书馆还是有人亲自创建并给了你?

问题是类BinarySearch位于default包中。您将无法导入它。如果这个库是由您或任何朋友创建的,则需要让您的朋友将所有类从默认包移动到一个好的命名空间,然后重新创建jar。

如果可以访问类,ctr + shift + o应该导入该类。

答案 1 :(得分:5)

我正在通过使用algs4.jar参考库的Coursera进行Algorithms课程。

问题:

您遇到的问题是参考库位于默认包中,而您访问参考库的源不是。

解决方案

项目中的所有类都需要在默认包中,否则将无法识别引用库(位于默认包中)。您的项目类需要位于src目录中,并且不应在.java文件的开头声明包。此外,您还需要确保added the reference libraries to your build path

答案 2 :(得分:1)

请注意,jar文件中的类都包含在默认包中。

如果您的课程随后包含在课程包中,则无法直接访问这些课程。

我提交这个答案是因为我正在使用这些jar文件所属的算法课程,这是我的程序无法正常工作的具体原因。

答案 3 :(得分:0)

如果要导入类,则需要下载该库的打包版本。请参阅本网页底部的问答部分。 http://introcs.cs.princeton.edu/java/stdlib/

  

Q值。如果我使用命名包来构造我的代码,则编译器无法再访问stdlib.jar中的库。为什么不呢?

     

一个。 stdlib.jar中的库位于“默认”包中。在Java中,您无法从命名包访问默认包中的类。如果您需要将我们的库与命名包一起使用,您可以使用打包版本stdlib-package.jar。

答案 4 :(得分:0)

首先,无法创建BinarySearch(私有构造函数)。使用静态方法BinarySearch.rank(int key, int[] array)

其次,您只能从默认包

访问BinarySearch

第三,Arrays.binarySearch(array, key)怎么办?