![](/img/trans.png)
[英]Why am I getting a “Is already defined in package unnamed package” error?
[英]How can I find a Java class that's “already defined in an unnamed package”?
我正在尝试将FlowLayout()
UI转换为GridBagLayout()
UI。 经过一些修改和测试后,我开始收到编译错误:
*classname* is already defined in unnamed package
我决定回滚到FlowLayout()
版本 - 我最后一个工作版本。 那个版本编译得很好,但是当我运行时(从命令行),我的乱搞GridBagLayout()
被显示出来。
我尝试重命名.java文件,但是我得到了上面提到的编译器错误。 我重新启动了我的控制台窗口和记事本,以防某些东西卡在内存中。 这没有解决问题。
但是,我确实将FlowLayout()
版本带到了我没有编译GridBagLayout()
更改的笔记本电脑上。 在那台机器上,它运行得很好,给了我期待的FlowLayout()
。
我已经扫描了我的/ java目录中的* .class,删除了我找到的所有类,但我仍然得到错误。 如果它有所作为,我正在运行Win7。 记事本是我的“IDE”,我在命令提示符下运行所有内容。
我需要寻找什么来刷新这个“未命名的包”?
所有文件都没有前导package
语句。 无论如何,正如Java文档中所报告的那样:
一般来说,一个未命名的包只适用于小型或临时应用程序,或者刚刚开始开发过程。 否则,类和接口属于命名包。
请参阅@esseks发布的链接以了解Java包。 我发帖只是为了帮助您使用findstr
快速找到任何重复的类定义(Windows等效于grep
)
C:\> CD C:\path\to\java
// delete all .class files
C:\path\to\java>del /S *.class
// find all .java files with FlowLayout class definition
C:\path\to\java>findstr /S /I /N /C:"class flowlayout" *.java
// find all .java files with GridBagLayout class definition
C:\path\to\java>findstr /S /I /N /C:"class gridbaglayout" *.java
传说:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.