当我把一个.java生成一个.class 以后 我又更改了下.java里面的某个设置的值
这个时候在不删除以前那个.class的时候 直接javac 覆盖这个.class 可程序还是执行的是更改前
设置的那个值 这是为什么呢?
比如 设置了一个组件位置setLocation(100, 100); 改成setLocation(200, 200);
必须删掉以前生成的那个 在用javac生成.class 这样 那个组件的位置才会变
不先删掉先前那个 而是直接javac覆盖的话  运行时这个组件的出现位置还是在 100. 100  

解决方案 »

  1.   

    应该不会啊  修改.java文件后是否保存?
      

  2.   

    我也觉得 覆盖=删除+重新生成可是我的覆盖 刷新了也不行 其他我没操作过任何地方啊 我只是改了一下setLocation();里面的坐标  这样就必须把生成的手动删除
    在从新生成才行   哪位有过同样的经历吗?
      (我的.java和.class都放在同一个文件夹里。 )
      

  3.   

    反编译一下,看看class变了没。
    我觉得可能是你javac的时候没指定输出目录,导致编译生成的.class没有覆盖原来那个,而是在别的目录下生成了一个新的。
      

  4.   

    把类加上存取路径 package后 在更改没问题了 
    我觉得是在同一个文件夹时,比方有4个.java 改了其中一个后 
    我偷懒只运行 那个主.java  这样我改的那个.java 是不是因为文件夹里有一个 此.java生成的.class
    所以主.java没有在去编译那个我修改过的.java 而照成的呢?
      

  5.   

    这样也就是说  改了哪个.java 就要从新编译那个.java java的 在同一个文件夹内 编译一个.java 其他相关.java自动生成的 方法 
    在这种情况下是不适用的, 我这样理解是对的吗?
      

  6.   

    javac的话他是不识别包的,所以你生成的类文件和原来的类文件根本 不再一个目录下
      

  7.   

    不用删除原来的那个.class文件的,你只要在原来那个.java文件如果有所改变 的话,需要保存好再编译一下,JDK自己会再生成一个新的.class文件,而且执行的也是最近编译的那个class文件,注意,一定要在原来编译的窗口没关闭之前,对原来的Java文件所做修改才不用删除那个.class文件。
    现在比方说你昨天写好了那个Java文件,现在重新打开编辑器编辑的话,这时候你在java javaName.java
    有时候是会让编译出错的。在这种情况下,最好是删了原来的那个class文件。
    初学者能不用eclipse工具选择使用简单的如记事本等一些工具对将来打好基础是很好的。
    如果说你用的是MyEclipse之类的工具版本比较高的,根本就不用考虑这些问题。
    用多了练习自然什么都懂了。好好干吧。
      

  8.   

    上面有句话写错了,做下修改:
    现在比方说你昨天写好了那个Java文件,现在重新打开编辑器编辑的话,这时候你要保存好,然后编译
    javac javaName.java  再执行 Java JavaName