当前位置: 首页 > 知识库问答 >
问题:

为什么下面的代码编译但不运行?[副本]

奚才良
2023-03-14
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。我做错了什么?

共有1个答案

仲高超
2023-03-14

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

在Windows下,demo和Demo的编译将覆盖一个文件。

 类似资料:
  • 我在第5行得到一个错误,上面说“未处理的异常IOException,InvalidFormatException”

  • 我正在做一项任务来编译Pascal的子集,在初始程序中有一行代码如下: 这让我非常困惑,因为返回一个布尔值或,因此{Bool,Int}中的 中的

  • 我想能列一张这样的单子- 的标准库实现不允许这样做。它会给出编译时错误。因此,我正在编写自己的实现。 到目前为止我已经试过了- 那么,如何编写一个能够像上面提到的那样使用它的ArrayList呢? 人们已经指出这篇文章是list 的一个子类list ?为什么Java的泛型不是隐式多态的? 但我还是不明白。给出的理由是我们想避免这样的情况- 虽然这是有意义的,但我可以用Java数组做类似的事情,它在

  • 问题内容: 为什么要编译Python脚本?您可以直接从.py文件运行它们,并且效果很好,那么在性能上有什么优势吗? 我还注意到,我的应用程序中的某些文件被编译为.pyc,而另一些则没有,为什么? 问题答案: 它被编译为字节码,可以更快,更快速地使用。 无法编译某些文件的原因是,每次运行脚本时都会重新编译与之一起调用的主脚本。所有导入的脚本将被编译并存储在磁盘上。 Ben Blank的 重要补充:

  • 问题内容: Sun的规范JVM实现对字节码进行了一些相当复杂的优化,以在代码运行几次后获得接近本机的执行速度。 问题是,为什么没有将此编译后的代码缓存到磁盘以供以后使用同一功能/类时使用? 就目前而言,每次执行程序时,JIT编译器都会重新启动,而不是使用代码的预编译版本。当本质上解释字节码时,是否添加此功能不会大大提高程序的初始运行时间? 问题答案: 我不求助于@MYYN发布的链接的’n’past

  • 问题内容: 在方法或类范围内,下面的行进行编译(带有警告): 在类范围中, 变量获取其默认值 ,以下给出“未定义引用”错误: 它不是第一个应该以相同的“未定义参考”错误结束吗?还是第二行应该编译?还是我缺少什么? 问题答案: tl; dr 对于 字段 ,是非法的,因为它是对的非法前向引用。您实际上可以通过编写来解决此问题,该文件可以毫无抱怨地进行编译。 对于 局部变量 ,是非法的,因为未在使用前进