What are the practical problems Java apps typically run into when upgrading? Or is this more about not wanting to redeploy and test your app every 6 months?
What often causes issues is that every release has a new byte code version and the ecosystem relies heavily on byte code libraries so these will have to be updated across the board (eg. you use middleware that uses a framework that uses a byte code library).
Things on the top of my head that can break with Java 9:
- new gc logging options and format
- rt.jar and tools.jar are gone
- new JDK layout
- Corba, XML and Annotation classes no longer visible by default
- application class loader is no longer and URL class loader
- a different hack is required to munmap files
It's not too bad in general.