【问题标题】:Why does the following code compile but not run? [duplicate]为什么下面的代码编译但不运行? [复制]
【发布时间】:2025-12-03 07:40:01
【问题描述】:
class Demo
{
    Demo()
    {
        System.out.println("Hello From Demo");
    }
}

class demo
{   
    demo()
    {
        System.out.println("Hello From Small Demo");
    }
}

class Test
{
    public static void main(String arg[])
    {
        Demo d1=new Demo();
        demo d2=new demo();
    }
}

此代码编译但不是不运行;当我尝试运行这个程序时,它给出了一个classNotFoundException。我做错了什么?

【问题讨论】:

  • 你能发布完整的堆栈跟踪吗?
  • 你是如何尝试运行代码的?从命令行还是 ide?​​span>
  • 这些类是否都定义在同一个文件中?你是如何运行程序的?
  • 通过this发布它可能会对您有所帮助。
  • @mluisbrown 不是严格的重复,但解释了为什么它会在某些系统上失败。很好的发现

标签: java classnotfoundexception


【解决方案1】:

在 Unix 下,和/或编译成 .jar 应用程序,文件名区分大小写。一切都会奏效:demo.class、Demo.class。

Windows下编译demo和Demo会覆盖一个文件。

【讨论】:

  • 好的,我明白了,非常感谢你