在Netbeans中正确导入库的方法

4

我想要尝试一下刚下载的名为stdlib.jar的库(从http://introcs.cs.princeton.edu/java/stdlib/下载)。

我将该库添加到项目中,并在netbeans中检查该项目,结果如下: package inspector in netbeans

看起来库已正确设置。

但是,在我的项目中当我尝试使用库类时,它就变成了这样。

My Custom Audio Player Class

将鼠标悬停在顶部的引入语句上,会出现expected "."的提示。
如果我将导入语句更改为import stlib.StdAudio ,它会提示该库不存在。
有人知道问题出在哪里吗?

3个回答

1
这个库的所有源代码(这很不寻常:我第一次遇到这种情况)都在默认包中,这意味着如果你的类也在默认包中,你就不需要导入任何东西。只需使用类名即可。
StdAudio.play(tone);

只要确保它在类路径中,但是如果我看一下你在NetBeans中的截图,我认为它已经在了。


更新:看起来我错了。在页面底部,您可以找到以下内容:

问:如果我使用命名包来组织我的代码,编译器就无法访问 stdlib.jar 中的库。为什么?
答:stdlib.jar 中的库位于“默认”包中。 在 Java 中,您无法从命名包中访问默认包中的类。 如果您需要使用我们的标准库与命名包,请将我们的库放入包中,如此解决方案。

因此,您必须将这些类复制到您的项目所在的包 musicplayer 中。


1
哦,那看起来很乱。哈哈,我猜我只能这样做了。非常感谢! - wfbarksdale

1

1)摒弃导入声明。

2)摒弃包声明。

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

4)在项目菜单中右键点击库,添加 stdlib.jar。


0

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

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

基本上这就是您需要做的全部。现在,当您将源文件移动到默认包并将“stdlib.jar”添加到库中时,您将没有问题地访问库中的类。您不需要为它们编写“import”语句。


stdlib现在已经包含在algs4.jar中,可以从这里下载http://introcs.cs.princeton.edu/java/code/。 - Ivailo Bardarov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接