|
|
|
@ -171,6 +171,8 @@ public final class NativeLibraryLoader { |
|
|
|
|
* Specify a custom location where native libraries should |
|
|
|
|
* be extracted to. Ensure this is a unique path not used |
|
|
|
|
* by other applications to extract their libraries. |
|
|
|
|
* Set to <code>null</code> to restore default |
|
|
|
|
* functionality. |
|
|
|
|
* |
|
|
|
|
* @param path Path where to extract native libraries. |
|
|
|
|
*/ |
|
|
|
@ -178,6 +180,23 @@ public final class NativeLibraryLoader { |
|
|
|
|
extractionFolderOverride = new File(path).getAbsoluteFile(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 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 the working folder, then it |
|
|
|
|
* is returned.</li> |
|
|
|
|
* <li>Otherwise, the {@link JmeSystem#getStorageFolder() storage folder} |
|
|
|
|
* is used, to prevent collisions, a special subfolder is used |
|
|
|
|
* called <code>natives_<hash></code> where <hash> |
|
|
|
|
* is computed automatically as the XOR of the classpath hash code |
|
|
|
|
* and the last modified date of this class. |
|
|
|
|
* |
|
|
|
|
* @return Path where natives will be extracted to. |
|
|
|
|
*/ |
|
|
|
|
public static File getExtractionFolder() { |
|
|
|
|
if (extractionFolderOverride != null) { |
|
|
|
|
return extractionFolderOverride; |
|
|
|
|