@@ -151,7 +151,7 @@ dependencies {
151
151
compile 'org.zeromq:$(use.project)-jni:+'
152
152
. endif
153
153
. endfor
154
- compile 'org.scijava:native-lib-loader:2.3.2 '
154
+ compile 'org.scijava:native-lib-loader:2.3.4 '
155
155
testCompile 'junit:junit:4.12'
156
156
testCompile 'org.hamcrest:hamcrest-all:1.3'
157
157
}
763
763
. output "$(topdir)/src/main/java/org/zeromq/tools/ZmqNativeLoader.java"
764
764
package org.zeromq.tools;
765
765
766
+ import java.io.IOException;
766
767
import java.util.Set;
767
768
import java.util.HashSet;
768
769
import org.scijava.nativelib.NativeLoader;
@@ -771,16 +772,16 @@ public class ZmqNativeLoader {
771
772
772
773
private static final Set<String> loadedLibraries = new HashSet<>();
773
774
774
- public static void loadLibrary(String libname) {
775
+ public static void loadLibrary(String libname, boolean optional ) {
775
776
if (!loadedLibraries.contains(libname)) {
776
777
try {
777
- if (System.getProperty("java.vm.vendor").contains("Android")) {
778
- System.loadLibrary(libname);
778
+ NativeLoader.loadLibrary(libname);
779
+ } catch (IOException e) {
780
+ if (optional) {
781
+ System.err.println("[WARN] " + e.getMessage() + " from jar. Assuming it is installed on the system.");
779
782
} else {
780
- NativeLoader.loadLibrary(libname );
783
+ System.exit(-1 );
781
784
}
782
- } catch (Exception e) {
783
- System.err.println("[WARN] " + e.getMessage() +" from jar. Assuming it is installed on the system.");
784
785
}
785
786
loadedLibraries.add(libname);
786
787
}
@@ -797,7 +798,6 @@ $(project.GENERATED_WARNING_HEADER:)
797
798
*/
798
799
package org.zeromq.$(project.prefix:c);
799
800
800
- import java.util.stream.Stream;
801
801
import org.zeromq.tools.ZmqNativeLoader;
802
802
. for project.use
803
803
. if count (project->dependencies.class, class.project = use.project) > 0
@@ -807,28 +807,15 @@ import org.zeromq.$(use.project).*;
807
807
808
808
public class $(my.class.name:pascal) \
809
809
. if count (my.class.constructor)
810
- implements AutoCloseable\
810
+ implements AutoCloseable \
811
811
. endif
812
812
{
813
813
static {
814
- Stream.of(
815
814
. for project.use
816
- "$(use.prefix:c)",
815
+ ZmqNativeLoader.loadLibrary( "$(use.prefix:c)", true);
817
816
. endfor
818
- "$(project.prefix:c)"
819
- )
820
- .forEach(lib -> {
821
- try {
822
- ZmqNativeLoader.loadLibrary(lib);
823
- } catch (Exception e) {
824
- System.err.println("[WARN] " + e.getMessage() +" from jar. Assuming it is installed on the system.");
825
- }
826
- });
827
- try {
828
- ZmqNativeLoader.loadLibrary("$(project.prefix:c)jni");
829
- } catch (Exception e) {
830
- System.exit (-1);
831
- }
817
+ ZmqNativeLoader.loadLibrary("$(project.prefix:c)", true);
818
+ ZmqNativeLoader.loadLibrary("$(project.prefix:c)jni", false);
832
819
}
833
820
public long self;
834
821
. my.class.jni_void_new = 0
0 commit comments