public static File getExtractionFolder() {
        if (extractionFolderOverride != null) {
            return extractionFolderOverride;
        }
        if (extractionFolder == null) {
            File userTempDir = new File(System.getProperty("java.io.tmpdir"));
            if (!userTempDir.canWrite()) {
                setExtractionFolderToUserCache();
            } else {
                try {
                    File jmeTempDir = new File(userTempDir, "jme3");
                    if (!jmeTempDir.exists()) {
                        jmeTempDir.mkdir();
                    }
                    extractionFolder = new File(jmeTempDir, "natives_" + Integer.toHexString(computeNativesHash()));

                    if (!extractionFolder.exists()) {
                        extractionFolder.mkdir();
                    }
                } catch (Exception e) {
                    setExtractionFolderToUserCache();
                }
            }
        }
        return extractionFolder;
    }
Returns the folder where native libraries will be extracted.
This is automatically determined at run-time based on the 
following criteria:<br>
<ul>
<li>If a {@link #setCustomExtractionFolder(java.lang.String) custom
extraction folder} has been specified, it is returned.
<li>If the user can write to "java.io.tmpdir" folder, then it
is used.</li>
<li>Otherwise, the {@link JmeSystem#getStorageFolder() storage folder}
is used, to prevent collisions, a special subfolder is used
called <code>natives_&lt;hash&gt;</code> where &lt;hash&gt;
is computed automatically as the XOR of the classpath hash code
and the last modified date of this class.
</ul>

@return Path where natives will be extracted to.
jme3-desktop/src/main/java/com/jme3/system/NativeLibraryLoader.java