You might want to look into the [UpToDate Project](https://github.com/uptodate-project/uptodate) which is fully compatible with the Java 9 Module System and meets your requirements.
It has the ability to update and launch the new files without restarting the virtual machine.