Use the java
command option -Xinternalversion
to
determine which version of Microsoft Visual Studio built the JDK. This version
may vary depending on the JDK release.
If you experience a crash with a Java application and if you have native or JNI libraries that are compiled with a different release of the compiler, then you must consider compatibility issues between the runtimes. Specifically, your environment is supported only if you follow the Microsoft guidelines when dealing with multiple runtimes. For example, if you allocate memory using one runtime, then you must release it using the same runtime. Unpredictable behavior or crashes can arise if you release a resource using a different library than the one that allocated the resource.
JDK and JRE releases prior to 8u261 use and ship the Microsoft Visual C++
2010 SP1 Redistributable Package (x86/x64), which includes
MSVCR100.dll
. Later releases of the JDK and JRE are built with a
later version of Microsoft Visual Studio. Consequently, they use a
different set of libraries and DLLs.
Native applications that depended on and assumed the presence of
MSCVR100.dll
in the JDK or JRE directory will fail to run. When
this happens, users will see an error such as:
The code execution cannot proceed because MSVCR100.dll
was not found. Reinstalling the program may fix this problem.
Rebuild these applications and ship them with modern C++ runtime dependencies that use a later instance of Visual Studio. Ensure your applications don't depend on third-party DLLs included with the JDK or JRE that are not part of the JDK or JRE itself.
For more information, see The latest supported Visual C++ downloads and Products Ending Support in 2020 from Microsoft Docs.