从eclipse中的包访问引用的库

时间:2012-09-05 17:56:48

标签: java eclipse jar

如果我将类保存在默认包中,我只能访问引用的库类。如果我尝试从任何其他包访问它们,我得到“className无法解析”。知道为什么会这样吗?

enter image description here

3 个答案:

答案 0 :(得分:18)

该软件包来自普林斯顿的IntroCS课程的标准库,快速使用谷歌。

如果您按照页面上的常见问题解答进行操作 http://introcs.cs.princeton.edu/java/stdlib/

  

Q值。如果我使用命名包来构造我的代码,编译器就不能   更长时间访问stdlib.jar中的库。为什么不?   A.图书馆   在stdlib.jar中是在“默认”包中。在Java中,您无法访问   来自命名包的默认包中的类。如果你需要   使用我们的库与命名包,您可以使用打包   版本stdlib-package.jar。

下载包jar文件: http://introcs.cs.princeton.edu/java/stdlib/stdlib-package.jar

右键单击项目文件夹并添加外部JAR。

import edu.princeton.cs.introcs.*;

将以上行添加到需要引用类的类中。 第一行引用正确的包名称,*通配符导入其中的所有类。

:)希望有所帮助。

//编辑 - 如果右键单击项目文件夹并使用“组织导入”,它将更快,因此您不必手动添加到每个类。

答案 1 :(得分:3)

检查您是否有正确的import声明,并且您所引用的类型包含public访问修饰符。

默认包中的类型的导入声明是不可能的。 JLS指定从未命名的包导入类型是编译时错误。 您必须通过反射访问您的课程,或者更好的是不要使用默认包。当您想要在默认包中创建类型时,Eclipse应该向您显示警告,因为通常不鼓励它。

如果你正在使用像Eclipse这样的IDE,那么尝试在要使用它的类中的类型名称后面点击 CTRL + SPACE 。 Eclipse应该为您提供所有匹配的机会,并且如果您选择了类,将自动为您添加导入。

答案 2 :(得分:1)

您需要将包导入其他包中。

一个包中的类不能直接引用其他包,除非它被引用。