对于存为x.java 的文件内容如下:
class x{}
   class X{}
执行javac x.java
只能生成一个类文件。
我知道与操作系统有关,但不知道javac它到底是生成了几个,

   javac -verbose x.java
就可以清楚地告诉你她生成了两个  x.class 和 X.class
只是windows机制不允许她多胎生育,只能选择一个。
是吧??
考虑清楚了,来这里分享一下

解决方案 »

  1.   

    每个class都会生成.class文件??
      

  2.   

    因为....
    windows是不区分大小写的,所以第二个类会对第一个类进行覆盖
    例如:class x{}
    class X{
    int a;
    }
    你反编译x.class,会发现class X
    {    X()
        {
        }    int a;
    }
      

  3.   

    而且你为什么要用javac -verbose x.java作为什么妙用的标题?直接javac -x.java就行了,单从你标题和内容上看,我没看到如何妙?
      

  4.   

    4楼是错的,不是覆盖!!!
    注意!!
    而是在dos环境下也可以模拟。
    md x
    md X
    第二次就提示你无法建立,而不会覆盖。
    这里只生成小写的 x.class至于5楼,我比较反感没有思考就乱说。
    我的意思你可以通过javac -verbose x.java 这个命令知道是生成了两个x.class 和 X.class
    而不是你在OS中只看到的一个。