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(); } }