Виртуальная машина Java (JVM) может выполнять код только с помощью метода main
. Код не может быть выполнен без метода main
, но он все равно может быть скомпилирован (как вы заметили), поэтому обязательно использовать метод main
, иначе вы столкнетесь с java.lang.ClassNotFoundException
.
Просто добавьте это к своему коду (вам не нужны комментарии):
public static void main(String[] args) {
// This class is mandatory to be executed by the JVM.
// You don't need to do anything in here, since you're subclassing ConsoleProgram,
// which invokes the run() method.
}
Кстати, поскольку вы переопределяете Program#run()
, вам нужно добавить @Override
в качестве аннотации. Кроме того, поскольку вы используете только консоль, подкласса ConsoleProgram
будет достаточно.