coursier-jni-utils is a small library allowing to tap into various Windows native APIs from Java / Scala via JNI.
A JVM, such as AdoptOpenJDK 8 or 11, is required.
To check if such a JVM is installed, run
java -version, and check that it prints a version
higher than or equal to
mingw is required to build the dll files out of
.c files calling native Windows native APIs, and interfacing with JNI.
On Windows, the coursier-jni-utils build assumes mingw is installed under
C:\msys64. If it's installed at a different location, edit the
On Linux and macOS, the coursier-jni-utils build assumes mingw gcc can be run with
IntelliJ IDEA is the recommended IDE to develop on jni-utils. Prior to opening the project with IDEA, run
$ ./mill mill.scalalib.GenIdea/idea
Then open the
jni-utils directory in IDEA.
$ ./mill __.compile
This should automatically compile
.c files with mingw, create a
.dll, and make it available as a resource from Java.
Some simple tests can be run with
$ ./mill __.test