在netbeans中正确导入库

时间:2011-10-04 18:24:53

标签: java netbeans shared-libraries

所以我想搞一个我刚刚下载的名为stdlib.jar的库(从http://introcs.cs.princeton.edu/java/stdlib/下载)

所以我将库添加到项目中,当我检查项目时,它在netbeans中看起来像这样: package inspector in netbeans

所以看来图书馆设置得当。

但是在我的项目中,当我尝试使用其中一个库类时,它看起来像这样。

My Custom Audio Player Class

将鼠标放在顶部的导入声明上, expected "." 如果我将import语句更改为import stlib.StdAudio ,则表示该库不存在。
任何人都知道问题是什么?

3 个答案:

答案 0 :(得分:1)

这个库的所有源代码(这是非常不寻常的:我第一次遇到这个)是在默认包中,这意味着如果你的类也在默认包中,你不必导入任何 即可。只需使用班级名称。

StdAudio.play(tone);

确保它在类路径中,但我认为如果我从NetBeans查看您的屏幕截图。


更新:好像我错了。在页面底部,您可以找到:

  

问。如果我使用命名包来构造我的代码,编译器就不能   更长时间访问stdlib.jar中的库。为什么不呢?    A。图书馆   在stdlib.jar中是在“默认”包中。 在Java中,您无法访问   来自命名包的默认包中的类。如果需要   使用我们的标准库与命名包,你必须把我们的   包中的库,如此解决方案。

因此,您必须将类复制到项目包musicplayer

答案 1 :(得分:1)

1)摆脱import语句。

2)摆脱包装声明。

3)将musicplayer.java直接放在文件夹/ src

4)右键单击项目菜单中的库并添加stdlib.jar

答案 2 :(得分:0)

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

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

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