我已将algs4.jar文件作为引用库导入,如上所示。一切似乎都很好,但我似乎无法使用或访问库中的任何类。
我缺少一份导入声明吗?
图片参考:
请注意我是如何尝试使用引用库中的BinarySearch
但它没有为我提供使用或导入它的选项。
答案 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)
怎么办?