Это не решает проблему для всех, но, тем не менее, важно:
В Windows 7 вам также необходимо проверить каталог «C: \ Windows \ Prefetch». По какой-то причине Windows 7 помещает копии исполняемых файлов в каталог «C: \ Windows \ Prefetch», чтобы ускорить время запуска. Windows предполагает, что «C: \ Windows», вероятно, будет первым в пути, поэтому, если все копии часто используемых исполняемых файлов находятся в «C: \ Windows \ Prefetch», Windows 7 может обеспечить иллюзию более быстрого запуска приложений. К сожалению, если вы работаете с разными версиями Java, как я, эта схема кэширования может быстро испортить ваш день.
У меня была та же проблема, что и у вас (Tomcat не запускался как служба), поэтому я удалил службу Tomcat, переустановил ее и проверил каталог «C: \ Windows \ Prefetch». И вот, посмотри, что я нашел:
APACHE-TOMCAT-6.0.32.EXE-F8BD7E48.pf
Это означает, что либо установщик поместил туда копию tomcat6.exe, либо Windows 7 сделал, когда я запустил службу. При обновлении Tomcat этот кэшируемый исполняемый файл может или не может обновляться вместе с ним, поэтому вам может потребоваться удалить его после обновления. Проверьте этот каталог на наличие более старых версий файлов APACHE-TOMCAT-xxxxxxxxxx.pf и уничтожьте их.
Это относится и к Java, и к обновленным версиям Java. Если вы проверите «C: \ Windows \ Prefetch», вы можете найти там много файлов JAVA.EXE-xxxxxx.pf. Я удаляю их все, так как работаю с парой разных версий Java и хочу, чтобы ОС использовала исполняемый файл по указанному мной пути, а НЕ первый исполняемый файл JAVA в «C: \ Windows \ Prefetch».