java 如何在Eclipse中使用引用库中的类

ejk8hzay  于 2023-02-20  发布在  Java
关注(0)|答案(6)|浏览(164)

我已经导入了algs4.jar文件作为一个引用库,如上图所示,一切看起来都很好,但我似乎无法使用或访问库中的任何类。
我是不是漏掉了一个import语句?
图片参考:

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

8nuwlpux

8nuwlpux1#

我正在通过Coursera学习一个Algorithms类,它利用了algs4.jar参考库。

问题:

您遇到的问题是引用库位于默认包中,而您访问引用库的源不在其中。

解决方案

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

4si2a6ki

4si2a6ki2#

我不确定,我没有试过这个。虽然有一些解释。
这是一个标准库还是有人自己创建并提供给您的?
问题是类BinarySearchdefault包中。您将无法导入它。如果此库是由您或您的任何朋友创建的,您需要让您的朋友将所有类从默认包移动到一个良好的名称空间,然后重新创建jar。
如果类是可访问的,则ctr + shift + o应导入该类。

zzlelutf

zzlelutf3#

注意,jar文件中的类都包含在默认包中。
如果你的类被包含在一个包中,那么它们将不能被直接访问。
我提交这个答案是因为我正在学习这些jar文件所属的算法课程,这是我的程序不工作的具体原因。

ntjbwcob

ntjbwcob4#

如果你想导入这些类,你需要下载这个库的打包版本。请参阅本网页底部的问答部分。http://introcs.cs.princeton.edu/java/stdlib/
问:如果我使用一个命名的包来构造代码,编译器就不能再访问stdlib.jar中的库了。
答:stdlib.jar中的库在“默认”包中,在Java中,你不能从命名包中访问默认包中的类,如果你需要使用带有命名包的我们的库,你可以使用打包版本stdlib-package.jar。

slsn1g29

slsn1g295#

首先,无法创建BinarySearch(私有构造函数)。请使用静态方法BinarySearch.rank(int key, int[] array)
其次,您只能从默认包访问BinarySearch
第三,Arrays.binarySearch(array, key)怎么样?

vnzz0bqm

vnzz0bqm6#

只需删除module_info. java文件,即可立即访问引用的库

相关问题