1. A method in a data processing system for inlining native functions into compiled Java code, the method comprising; running a just-in-time compiler by a Java runtime environment to a standard inlining phase; responsive to running the just-in-time compiler to the standard inlining phase, detecting a native function call at a Java callsite; determining if the native function call is to an opaque function, wherein the call to the opaque function invokes procedures for which a just-in-time compiler cannot render an intermediate representation; if the native function call is to an opaque function, determine whether the Java callsite was created while processing Java bytecodes; if the Java callsite was not created while processing Java bytecode, synthesizing a Java callable native function, and replacing the native function call with a call to the synthesized native function, wherein the synthesized native function provides access to a native library containing an implementation of the opaque function; responsive to determining that the native function call is not an opaque function, converting an intermediate representation of native function to a just-in-time compiler intermediate representation and omitting inlining of native functions called from opaque functions; and inlining the just-in-time compiler intermediate representation into the Java callsite.