diff --git a/core-java/native/nativedatetimeutils.dll b/core-java/native/nativedatetimeutils.dll new file mode 100644 index 0000000000..ecdd388380 Binary files /dev/null and b/core-java/native/nativedatetimeutils.dll differ diff --git a/core-java/src/main/java/com/baeldung/nativekeyword/DateTimeUtils.java b/core-java/src/main/java/com/baeldung/nativekeyword/DateTimeUtils.java new file mode 100644 index 0000000000..0762b0eb8a --- /dev/null +++ b/core-java/src/main/java/com/baeldung/nativekeyword/DateTimeUtils.java @@ -0,0 +1,10 @@ +package com.baeldung.nativekeyword; + +public class DateTimeUtils { + + public native String getSystemTime(); + + static { + System.loadLibrary("nativedatetimeutils"); + } +} diff --git a/core-java/src/main/java/com/baeldung/nativekeyword/NativeMainApp.java b/core-java/src/main/java/com/baeldung/nativekeyword/NativeMainApp.java new file mode 100644 index 0000000000..76fe548ed3 --- /dev/null +++ b/core-java/src/main/java/com/baeldung/nativekeyword/NativeMainApp.java @@ -0,0 +1,11 @@ +package com.baeldung.nativekeyword; + +import com.baeldung.nativekeyword.DateTimeUtils; + +public class NativeMainApp { + public static void main(String[] args) { + DateTimeUtils dateTimeUtils = new DateTimeUtils(); + String input = dateTimeUtils.getSystemTime(); + System.out.println("System time is : " + input); + } +} diff --git a/core-java/src/test/java/com/baeldung/nativekeyword/DateTimeUtilsManualTest.java b/core-java/src/test/java/com/baeldung/nativekeyword/DateTimeUtilsManualTest.java new file mode 100644 index 0000000000..d5003dfc1f --- /dev/null +++ b/core-java/src/test/java/com/baeldung/nativekeyword/DateTimeUtilsManualTest.java @@ -0,0 +1,27 @@ +package com.baeldung.nativekeyword; + +import static org.junit.Assert.assertNotNull; + +import org.junit.BeforeClass; +import org.junit.Test; +import org.slf4j.Logger; + +public class DateTimeUtilsManualTest { + + private static final Logger LOG = org.slf4j.LoggerFactory.getLogger(DateTimeUtilsManualTest.class); + + @BeforeClass + public static void setUpClass() { + System.loadLibrary("msvcr100"); + System.loadLibrary("libgcc_s_sjlj-1"); + System.loadLibrary("libstdc++-6"); + System.loadLibrary("nativedatetimeutils"); + } + + @Test + public void givenNativeLibsLoaded_thenNativeMethodIsAccessible() { + DateTimeUtils dateTimeUtils = new DateTimeUtils(); + LOG.info("System time is : " + dateTimeUtils.getSystemTime()); + assertNotNull(dateTimeUtils.getSystemTime()); + } +}