Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/coursier/jni-utils


https://github.com/coursier/jni-utils

Last synced: about 2 months ago
JSON representation

Awesome Lists containing this project

README

        

# coursier-jni-utils

*coursier-jni-utils* is a small library allowing to tap into various Windows
native APIs from Java / Scala via JNI.

## Developer docs

*coursier-jni-utils* is built with
[Mill](https://com-lihaoyi.github.io/mill). It comes up with Mill launchers
(`mill`, `mill.bat`), so that only a JVM and the Visual C++ compiler
should be needed to build it.

### Requirements

#### JVM

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 `8`.

#### Visual C++

A Visual Studio installation with Visual C++ is required.

### IDE

[IntelliJ IDEA](https://www.jetbrains.com/idea) is the recommended IDE to
develop on jni-utils. Prior to opening the project with IDEA, run
```text
$ ./mill mill.scalalib.GenIdea/idea
```

Then open the `jni-utils` directory in IDEA.

### Compiling

```text
$ ./mill __.compile
```

This should automatically compile `.h` / `.c` files with Visual C++, create a
corresponding `.dll`, and make it available as a resource from Java.

### Running tests

Some simple tests can be run with
```text
$ ./mill __.test
```