Группа :: Система/Библиотеки
Пакет: jssc
Главная Изменения Спек Патчи Sources Загрузить Gear Bugs and FR Repocop
Патч: jssc-loadlibrary.patch
Скачать
Скачать
Index: java-simple-serial-connector-2.8.0/src/java/jssc/SerialNativeInterface.java
===================================================================
--- java-simple-serial-connector-2.8.0.orig/src/java/jssc/SerialNativeInterface.java
+++ java-simple-serial-connector-2.8.0/src/java/jssc/SerialNativeInterface.java
@@ -76,11 +76,40 @@ public class SerialNativeInterface {
*/
public static final String PROPERTY_JSSC_PARMRK = "JSSC_PARMRK";
+ private static boolean tryLoad(String filename) {
+ try {
+ System.load(filename);
+ } catch (Exception e) {
+ return false;
+ } catch (UnsatisfiedLinkError e) {
+ return false;
+ }
+
+ String versionBase = getLibraryBaseVersion();
+ String versionNative = getNativeLibraryVersion();
+
+ if (!versionBase.equals(versionNative)) {
+ System.err.println("Warning! jSSC Java and Native versions mismatch (Java: " + versionBase + ", Native: " + versionNative + ")");
+ }
+
+ return true;
+ }
+
static {
String libFolderPath;
String libName;
String osName = System.getProperty("os.name");
+
+ boolean libLoaded = false;
+
+ if ("Linux".equals(osName)) {
+ libLoaded = tryLoad("/usr/lib64/jssc/libjSSC.so");
+ if (!libLoaded) {
+ libLoaded = tryLoad("/usr/lib/jssc/libjSSC.so");
+ }
+ }
+
String architecture = System.getProperty("os.arch");
String userHome = System.getProperty("user.home");
String fileSeparator = System.getProperty("file.separator");
@@ -168,7 +197,7 @@ public class SerialNativeInterface {
}
}
- if (loadLib) {
+ if (loadLib && !libLoaded) {
System.load(libFolderPath + fileSeparator + libName);
String versionBase = getLibraryBaseVersion();
String versionNative = getNativeLibraryVersion();