JVM Does Not Use 'posix_spawn' Even After Applying Patch for JDK-5049299
Last updated on AUGUST 28, 2015
Applies to:Java SE JDK and JRE - Version 7 to 7 [Release 7]
Java SE JDK and JRE - Version 1.5.0 to 1.5.0 [Release 1.5]
Oracle Solaris on x86-64 (64-bit)
Oracle Solaris on SPARC (32-bit)
Oracle Solaris on SPARC (64-bit)
Oracle Solaris on x86 (32-bit)
The enhancement to allow the JVM to use posix_spawn instead of fork when creating new processes from inside Java on the Solaris OS was added in Java SE 8.
This was documented in the Enhancement Request JDK-5049299
It was backported to Java SE 7 with Update 55.
Up until this enhancement was added, Java used the fork/exec mechanism when it is was asked to invoke an external process. This is done via the "java.lang.Runtime.exec()" method. The fork function duplicates the address space of the parent process.
If the process has grown large, and if several of these requests are made in a short time, performance can suffer and the parent process may even run out of virtual address space. Therefore, the goal would be to not hit an out-on-memory condition or performance problem when creating another process from inside a running java process.
Sign In with your My Oracle Support account
Don't have a My Oracle Support account? Click to get started
My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms