System.out未被识别。

4

这让我彻底疯了。我有一个原本工作正常的软件包,然后我重命名了它,现在我无法使用System.out(或System类中的任何内容)。就价值而言,这是我的Main类(为了排除其他可能导致问题的因素,我除了System.out行以外删除了所有内容)。

package goldminetosugarconvertor;

public class Main
{
    public static void main(String[] args)
    {
        System.out.println("prog init");
    }
}

在NetBeans中,System.out.println 中的 out 被下划线标记为错误的 "cannot find symbol",但奇怪的是它显示的位置是 "class goldminetosugarconvertor.System",这显然是错误的。
有什么好的想法吗?我猜当我重命名包时会出现问题,但我只是想不出什么会导致 System 被错误识别。

你是否让IDE执行了包的重命名? - davogotland
显而易见的问题是:您在goldminetosugarconvertor包中是否有一个名为System的类? - President James K. Polk
尝试关闭所有文件和项目,然后关闭IDE,重新启动并再次加载项目。 - HectorLector
你已经执行了清理/重建操作吗?即使在IDE中,错误也会发生,但通常清理项目应该可以解决问题。我猜你的包里没有System类? - Maarten Bodewes
2个回答

12
你必须在包 goldminetosugarconvertor 中拥有一个 System 类。当你将旧的包 Main 更改为这个新包时,你现在用 goldminetosugarconvertor.System 遮蔽了来自 java.langSystem
除非你删除这个 System 类,否则你需要在 System.out 前面加上 java.lang.,例如:
java.lang.System.out.println("prog init");

是的!就是这样!感谢大家的迅速回复。又因为睡眠不足而出现了问题 :) - takesides
2
如果我是你,我可能会避免将我的类命名为Java库中的类,或者至少不要使用常见的类名,比如System - AusCBloke
不要忘记接受AusCBloke的答案。他为你解决了这个问题 :) - rfeak

0
今天我遇到了与最初提出问题的人一样的问题。Eclipse无法识别我的新类中或我创建的任何其他类中的System.out.println(除了在同一个包中的旧类中可以),非常奇怪!

并没有已经有一个(第二个)System类。

重启了Eclipse,没有帮助。

重启电脑,没有帮助。

通过创建一个名为“String”的新类解决了这个问题。 我很惊讶Eclipse没有警告我! 无论如何,我删除了那个新类,问题就解决了!

希望这也能帮助其他人!


清除项目缓存并重新构建项目也应该可以解决问题。 - Tom
我在声明名为“System”的接口时遇到了这个问题。 - Almas Abdrazak

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