在NetBeans中添加默认包的类

时间:2012-08-22 05:08:57

标签: java netbeans classpath

我有一个名为"stdlib.jar"的jar文件。它的"Default Package"中有许多类。我已将此stdlib.jar添加到我的NetBeans库中。而"Build"-ed它没有使用stdlib.jar中的任何内容。这样stdlib.jar就可以添加到我的"./dist/lib"文件夹中。但我仍然无法使用stdlib.jar中的任何类 如何重用stdlib.jar中的任何类?

3 个答案:

答案 0 :(得分:3)

强烈建议不要为库甚至项目使用“默认包”包。 如果使用默认包,那么类名应该是唯一的,否则它们将覆盖所有java.lang类。

现在来看你的情况。要使用stdlib.jar,如果您已将其添加到库中,那么您应该可以使用它。 您可以使用您正在使用它的项目的默认包中的stdlib.jar。除了默认包之外,您无法使用它,因为它将搜索该包中的stdlib.jar类。

希望这能让你清楚。感谢。

答案 1 :(得分:1)

你正在使用Sedgewick的教科书,不是吗?如果是,请阅读常见问题解答:

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

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

同样的问题:Getting a library to import properly in netbeans

答案 2 :(得分:1)

如果您在Coursera上使用Sedgewick教科书或算法课程,这可能会有所帮助。

如上所述,stdlib.jar中的库位于DEFAULT PACKAGE中。在Java中,您无法从命名包访问默认包中的类。 因此,您必须将源文件移动到项目的DEFAULT PACKAGE。这意味着您必须将源.java文件从./src/YOURPACKAGE/文件夹直接移动到项目的./src文件夹,然后删除YOURPACKAGE文件夹。你还必须删除“包YOURPACKAGE;”源文件开头的语句。

基本上你需要做的就是这些。现在,当您将源文件移动到默认包并将“stdlib.jar”添加到库时,从库中寻址类就没有问题了。您不需要他们的“导入”声明。