Look at the service locator in java. One of the main classes is `java.util.ServiceLoader`. It basically searches for a file named as an interface and loads the class named in this file. This is the standard way to load classes dynamically.