Ninja is designed to be a web framework, but if you want to leverage its excellent dependency injection or configuration for running a webserver-less console application, Ninja v6.3.0+ added support for ninja.standalone.NinjaConsole as a main entry point.
Your application will start like it normally would if running in a web server container like Jetty, but will not start a web server and will not initialize your conf.Router. All other Guice configuration and lifecycle methods will be started as they normally would if running as a standard Ninja web application.
You can either start the JVM directly or customize ninja.standalone.NinjaConsole. Since it includes a main method, the following would start your console-based Ninja application:
java -cp <classpath-here> ninja.standalone.NinjaConsole
Or you can write your own main method and customize NinjaConsole as much as you need:
import ninja.standalone.NinjaConsole;
import ninja.utils.NinjaMode;
public class MyMain {
static public void main(String[] args) throws Exception {
NinjaConsole ninja = new NinjaConsole()
.ninjaMode(NinjaMode.prod)
.start();
// other code (e.g. access guice injector)
// ninja.getInjector();
ninja.shutdown();
}
}