|
@@ -149,11 +149,30 @@ public final class Natives {
|
|
|
|
|
|
URL url = Thread.currentThread().getContextClassLoader().getResource(path);
|
|
URL url = Thread.currentThread().getContextClassLoader().getResource(path);
|
|
|
|
|
|
- if (url == null) {
|
|
|
|
|
|
+ // Also check for binaries that are not packed in folders by jme team, e.g. maven artifacts
|
|
|
|
+ if(url == null){
|
|
|
|
+ path = fullname;
|
|
|
|
+ if(sysName.equals("macosx") && !fullname.contains(".")){
|
|
|
|
+ path = path.replaceAll("dylib","jnilib");
|
|
|
|
+ }
|
|
|
|
+ url = Thread.currentThread().getContextClassLoader().getResource(path);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if(url == null){
|
|
if (!warning) {
|
|
if (!warning) {
|
|
- logger.log(Level.WARNING, "Cannot locate native library: {0}/{1}",
|
|
|
|
|
|
+ logger.log(Level.WARNING, "Cannot locate native library in classpath: {0}/{1}",
|
|
new String[]{sysName, fullname});
|
|
new String[]{sysName, fullname});
|
|
}
|
|
}
|
|
|
|
+ // Still try loading the library without a filename, maybe it is
|
|
|
|
+ // accessible otherwise
|
|
|
|
+ try{
|
|
|
|
+ System.loadLibrary(name);
|
|
|
|
+ } catch(UnsatisfiedLinkError e){
|
|
|
|
+ if (!warning) {
|
|
|
|
+ logger.log(Level.WARNING, "Cannot load native library: {0}/{1}",
|
|
|
|
+ new String[]{sysName, fullname});
|
|
|
|
+ }
|
|
|
|
+ }
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|