diff --git a/jme3-desktop/src/main/java/com/jme3/system/NativeLibraryLoader.java b/jme3-desktop/src/main/java/com/jme3/system/NativeLibraryLoader.java
index 5c240abfb..2917350f6 100644
--- a/jme3-desktop/src/main/java/com/jme3/system/NativeLibraryLoader.java
+++ b/jme3-desktop/src/main/java/com/jme3/system/NativeLibraryLoader.java
@@ -226,7 +226,7 @@ public final class NativeLibraryLoader {
if (extractionFolder == null) {
File workingFolder = new File("").getAbsoluteFile();
if (!workingFolder.canWrite()) {
- setExtractionDirToStorageDir();
+ setExtractionFolderToUserCache();
} else {
try {
File file = new File(workingFolder + File.separator + ".jmetestwrite");
@@ -234,20 +234,74 @@ public final class NativeLibraryLoader {
file.delete();
extractionFolder = workingFolder;
} catch (Exception e) {
- setExtractionDirToStorageDir();
+ setExtractionFolderToUserCache();
}
}
}
return extractionFolder;
}
+
+ /**
+ * Determine jME3's cache folder for the user account based on the OS.
+ *
+ * If the OS cache folder is missing, the assumption is that this
+ * particular version of the OS does not have a dedicated cache folder,
+ * hence, we use the user's home folder instead as the root.
+ *
+ * The folder returned is as follows:
+ *