为什么需要在运行之前保存代码 - 在Eclipse Kepler?

时间:2013-09-21 10:21:00

标签: java eclipse error-handling

我安装了新版本的eclipse Kepler而不是Indigo。我目前的操作系统是Ubuntu 12.04 一切看起来都很好,设置Ubuntu更新与Indigo相同。

但是当我尝试运行简单程序时会发生一些error

package polymorphism;

class AlertStatus {
    public String getStatus() {
        return "None";
    }
}

class RedAlertStatus extends AlertStatus {
    public String getStatus() {
        return "Red";
    }
}

class GreenAlertStatus extends AlertStatus {
    public String getStatus() {
        return "Green";
    }
}

class YellowAlertStatus extends AlertStatus {
    public String getStatus() {
        return "Yellow";
    }
}

class Starship {
    private AlertStatus status = new RedAlertStatus();

    public void setStatus(AlertStatus aStatus) {
        status = aStatus;
    }

    public String toString() {
        return status.getStatus();
    }
}

public class StarshipDemo {
    public static void main(String[] args) {
        Starship starfish = new Starship();
        System.out.println(starfish);
        starfish.setStatus(new GreenAlertStatus());
        System.out.println(starfish);
        starfish.setStatus(new YellowAlertStatus());
        System.out.println(starfish);
    }
}

以下是错误消息:

Error: Could not find or load main class polymorphism.StarshipDemo

我无法弄清楚为什么会发生这种错误以及如何避免它? 这是java -version

nazar_art@nazar-desctop:~$ java -version
java version "1.7.0_40"
Java(TM) SE Runtime Environment (build 1.7.0_40-b43)
Java HotSpot(TM) 64-Bit Server VM (build 24.0-b56, mixed mode)

问题:

  • 为什么这个错误会被删除?
  • 如何解决这个问题?

更新

我在运行程序前通过save解决了这个问题:

Ctrl + S => Ctrl + F11

现在一切都很完美,但为什么会发生这种情况

在Indigo版本中,我可以随时修改代码并重新运行(Ctrl + F11),并且所有代码都重新重新编译并再次执行。
有没有办法绕过这个“保存”部分?

1 个答案:

答案 0 :(得分:0)

检查以下eclipse首选项(Window> Preference)

运行/调试>启动> “在启动之前保存所需的脏编辑器”

您可以将其设置为“始终”以在运行/调试之前自动保存任何编辑器。