My first thought was “What about JNA?”

> Over the years, numerous frameworks have emerged to fill the gaps left by JNI, including JNA, JNR and JavaCPP. These frameworks are often a marked improvement over JNI but the situation is still less than ideal — especially when compared with languages which offer first-class native interoperation. For example, Python's ctypes package can dynamically wrap functions in native libraries without any glue code. Other languages, such as Rust, provide tools which mechanically derive native wrappers from C/C++ header files.

Is this JEP going to make that possible in Java?

I believe the goal of this project is to provide a low-level API for FFI, on which other tools can build.

Not sure which part of the quoted text you are asking about specifically, but it is quite likely possible to build such an abstraction on top of it (plus Java's dynamic class loading + loading dynamic libs should be able to handle pretty much any case). For an example, jextract is also in the works that will generate Java helper classes from C headers.

Thanks. Sorry for being unclear - I was talking about importing a C header.

Yes it's possible. The same project developed a tool called jextract that uses clang to convert C headers to Java Panama classes:

https://github.com/openjdk/jextract