JDK6 is built with Visual Studio 2003 .NET C++ compilers, and the required runtime library is MSVCR71.DLL. Microsoft doesn't recommend that we install it in the system32 directory, so we keep a copy in the bin directories where the exe's are launched, as recommended.
Any exe that loads up a dll that has a msvcr71.dll dependence, will need access to a msvcr71.dll in it's own bin directory, or in system32, or available in the PATH. So if some exe is loading up an arbitrary DLL, it probably should make sure it has all the other DLL's needed.
See http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6509291 for more information.
Copying it to the tomcat bin directory is probably the best solution. Copying it into the system32 directory or relying on the runtime in the system32 directory could be a problem later, if any product installation decides to update it, there is some risk there.
And yet another instance, also with the same slightly different solution as mentioned by robindrew.
I tried to run Tomcat 5.5 as a Windows service (Windows 2000) with an IBM VM / JRE. In the tomcat config program I chose
as the Java Virtual Machine but the service won't start with the same errors as mentioned above:
[2008-04-11 13:49:26] [173 javajni.c] [error] Das angegebene Modul wurde nicht gefunden.
[2008-04-11 13:49:26] [924 prunsrv.c] [error] Failed creating java C:\Programme\Java\ibm_jre\jre\bin\j9vm\jvm.dll
[2008-04-11 13:49:26] [1179 prunsrv.c] [error] ServiceStart returned 1
Copying C:\Programme\Java\ibm_jre\jre\bin\msvcr71.dll to C:\Winnt\system32 did NOT work but copying it to C:\Programme\Java\ibm_jre\jre\bin\j9vm (folder where the jvm.dll sits) did the trick. That's a bit funny because the dll was alread inside a the bin folder of that very IBM JRE but jvm.dll was still not able to find it.
I had the same issues with Tomcat 6 and Java 6. Copying the .dll or adding JRE bin directory to the path did not work. What worked was
1) going into the Tomcat directory
2) finding the tomcat6w.exe
3) double click it
4) navigate to the java tab
5) ensure that your java virtual machine path is correct (mine was a jumbled mess of the jdk and jre bins which didn't exist; I updated it to C:\Program Files\Java\jre1.6.0_05\bin\client\jvm.dll).
I then tried to start Tomcat from the services window and it worked.