Java程序发生编译错误,但运行成功

时间:2019-01-27 18:32:34

标签: java compiler-errors

class Return
{

      public static void main(String args[])
      {
         boolean t=true;
         System.out.println("Before the return");

         if(t)
         return;

         System.out.println("This wont execute");   
      }
}

该程序来自Herbert Schidt。我试图在没有if(t)的情况下使用命令提示符运行该程序 查看编译错误

error: unreachable statement  
   System.out.println("Wont Execute");

我理解此错误,但是当我执行命令java Return时程序运行正常。 显示输出

执行

所以我想知道即使有编译错误,该程序如何运行?

1 个答案:

答案 0 :(得分:2)

几乎可以肯定,您正在运行该类的最后一个成功编译的版本。当您执行Java编译器时,它不会清除其旧的输出,而是会覆盖它。因此,如果成功编译一次Return.java,则磁盘上将有一个Return.class。如果将Return.java更改为不可编译并尝试对其进行编译,则先前成功编译中的Return.class仍将存在。