public static void nativeInit() {
if (isNativeInited)
return;
+ try {
+ NativeLib.nativeInit("winpthread");
+ } catch (Exception e) {
+ if (System.getProperty("os.name").toLowerCase().startsWith("win")) {
+ System.err.println("Cannot load winpthread.dll:");
+ e.printStackTrace();
+ }
+ }
+
NativeLib.nativeInit("simgrid");
NativeLib.nativeInit("simgrid-java");
isNativeInited = true;
public class SurfJNI {
static {
+ try {
+ NativeLib.nativeInit("winpthread");
+ } catch (Exception e) {}
NativeLib.nativeInit("simgrid");
NativeLib.nativeInit("surf-java");
Runtime.getRuntime().addShutdownHook(
%}
%pragma(java) jniclasscode=%{
static {
+ try {
+ NativeLib.nativeInit("winpthread");
+ } catch (Exception e) {}
NativeLib.nativeInit("simgrid");
NativeLib.nativeInit("surf-java");
Runtime.getRuntime().addShutdownHook(
COMMAND ${CMAKE_COMMAND} -E echo "-- Cmake put the native code in ${JAVA_NATIVE_PATH}"
COMMAND "${Java_JAVA_EXECUTABLE}" -classpath "${SIMGRID_JAR}" org.simgrid.NativeLib
)
+ if(MINGW)
+ find_library(WINPTHREAD_DLL
+ NAME winpthread winpthread-1
+ PATHS C:\MinGW C:\MinGW64 C:\MinGW\bin C:\MinGW64\bin
+ )
+ add_custom_command(
+ TARGET simgrid-java_jar POST_BUILD
+ COMMENT "Add the MinGW libs into simgrid.jar..."
+ DEPENDS ${CMAKE_BINARY_DIR}/lib/${LIBSIMGRID_SO}
+
+ COMMAND ${CMAKE_COMMAND} -E remove_directory NATIVE
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${JAVA_NATIVE_PATH}
+ COMMAND ${CMAKE_COMMAND} -E copy ${WINPTHREAD_DLL} ${JAVA_NATIVE_PATH}
+
+ COMMAND ${JAVA_ARCHIVE} -uvf ${SIMGRID_JAR} NATIVE
+ COMMAND ${CMAKE_COMMAND} -E remove_directory NATIVE
+ )
+ endif(MINGW)
endif(enable_lib_in_jar)
include_directories(${JNI_INCLUDE_DIRS} ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2})