X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/a92d7b716f51a53dea7f59db8524d4add713b910..5a7f8ddf61c944f976b07092d521b2948f0d9850:/src/bindings/java/org/simgrid/NativeLib.java diff --git a/src/bindings/java/org/simgrid/NativeLib.java b/src/bindings/java/org/simgrid/NativeLib.java index 6739dba4b3..0f8c1e6427 100644 --- a/src/bindings/java/org/simgrid/NativeLib.java +++ b/src/bindings/java/org/simgrid/NativeLib.java @@ -1,4 +1,4 @@ -/* Copyright (c) 2014-2017. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2014-2018. The SimGrid Team. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ @@ -13,9 +13,9 @@ import java.io.File; import java.nio.file.Files; import java.nio.file.Path; -/** Helper class loading the native functions of SimGrid that we use for downcalls - * - * Almost all org.simgrid.msg.* classes contain a static bloc (thus executed when the class is loaded) +/** Helper class loading the native functions of SimGrid that we use for downcalls + * + * Almost all org.simgrid.msg.* classes contain a static bloc (thus executed when the class is loaded) * containing a call to this. */ public final class NativeLib { @@ -27,8 +27,8 @@ public final class NativeLib { throw new IllegalAccessError("Utility class"); } - /** Hidden debug main() function - * + /** Hidden debug main() function + * * It is not the Main-Class defined in src/bindings/java/MANIFEST.in (org.simgrid.msg.Msg is), * so it won't get executed by default. But that's helpful to debug linkage errors, if you * know that it exists. It's used by cmake during the configure, to inform the user. @@ -96,8 +96,8 @@ public final class NativeLib { } /* For each possible filename of the given library on all possible OSes, try it */ - for (String filename : new String[] - { name, + for (String filename : new String[] + { name, "lib"+name+".so", /* linux */ name+".dll", "lib"+name+".dll", /* windows (pure and mingw) */ "lib"+name+".dylib" /* mac osx */}) { @@ -110,21 +110,18 @@ public final class NativeLib { if (in == null) continue; // Try the next name: no such file found - /* copy the library in position */ - byte[] buffer = new byte[4096]; - int bytesRead; + /* copy the library in position */ + byte[] buffer = new byte[4096]; + int bytesRead; while ((bytesRead = in.read(buffer)) != -1) // Read until EOF - out.write(buffer, 0, bytesRead); - - out.close(); // Windows cannot open it twice, so close it first. Shame. - - /* load that shit */ - System.load(fileOut.getAbsolutePath()); - - /* It loaded! we're good */ - return true; - + out.write(buffer, 0, bytesRead); } + + /* load that library */ + System.load(fileOut.getAbsolutePath()); + + /* It loaded! we're good */ + return true; } /* No suitable name found */ @@ -169,7 +166,7 @@ public final class NativeLib { if (! dir.delete() && !dir.getAbsolutePath().contains("appveyor") ) System.out.println("Unable to clean temporary file "+dir.getAbsolutePath()+" during shutdown."); } catch(Exception e) { - System.out.println("Unable to clean temporary file "+dir.getAbsolutePath()+" during shutdown: "+e.getCause()); + System.out.println("Error while cleaning temporary file "+dir.getAbsolutePath()+" during shutdown: "+e.getCause()); e.printStackTrace(); } }