From 394bebd794e4594654d9939fe4dd0f0b8a0f21c3 Mon Sep 17 00:00:00 2001 From: Alexey Sokolov Date: Tue, 23 Apr 2013 11:28:54 +0300 Subject: [PATCH] Added fix for issue #10. If user home folder is read-only, the native library will be unpacked into temp folder --- src/java/jssc/SerialNativeInterface.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/java/jssc/SerialNativeInterface.java b/src/java/jssc/SerialNativeInterface.java index dd09a47..b6cd70d 100644 --- a/src/java/jssc/SerialNativeInterface.java +++ b/src/java/jssc/SerialNativeInterface.java @@ -71,6 +71,11 @@ public class SerialNativeInterface { String architecture = System.getProperty("os.arch"); String userHome = System.getProperty("user.home"); String fileSeparator = System.getProperty("file.separator"); + String tmpFolder = System.getProperty("java.io.tmpdir"); + + //since 2.3.0 -> + String libRootFolder = new File(userHome).canWrite() ? userHome : tmpFolder; + //<- since 2.3.0 String javaLibPath = System.getProperty("java.library.path");//since 2.1.0 @@ -122,7 +127,7 @@ public class SerialNativeInterface { architecture = "arm" + floatStr; } - libFolderPath = userHome + fileSeparator + ".jssc" + fileSeparator + osName; + libFolderPath = libRootFolder + fileSeparator + ".jssc" + fileSeparator + osName; libName = "jSSC-" + libVersion + "_" + architecture; libName = System.mapLibraryName(libName);