As part of securing some of our machines for DoD use we have to maintain up to date Java versions. To do this we install the latest JDKs and use the Server Settings > Java and JVM > Java Virtual Machine Path to then tell CF to use it. We've been doing this since CF4 with no issues and when we moved to CF6+ we continued the process but also after doing this we then remove the jre folder from the runtime folder from within CF itself. Well I just setup and installed my first CF9 + Win 2008 R2 server and after doing this the Solr service fails to start. This then had me digging into its folder structure and it has its own jre folder within its folder structure as well. However using Sysinternals Process Monitor I can see the Solr service is NOT using the jre folder from within it's own structure but is actually going up and "trying" to use the runtime\jre folder which I've removed so it causes the service to fail. I can actually remove the solr\jre folder as long as the runtime\jre folder exists.
So there are several issues with this.
- Solr has yet another Java installation within itself
- Solr does not use its own Java even though there's a copy there
- Solr does not respect the overall Java VM Path setting