vpiTriumph
vpiTriumph

Reputation: 3166

Call Java library from Kotlin Native

I am using Kotlin Native to create code that will run on two separate operating systems (MacOS and Android). Both machines will have JVMs installed.

I have a Java library that cannot be rewritten in Kotlin, as it relies on an open-souce third party Java dependency -- specifically WireMock but I don't think that's relevant to answer the broader question.

Are there options for Java interop beyond invoking a standalone JAR from the Native shell/terminal? Is there something that can be achieved via the JNI to allow for programatic invocation of the JAR from Kotlin Native?

Upvotes: 0

Views: 576

Answers (1)

Evgeny K
Evgeny K

Reputation: 3167

The answer is yes, you can. But I would never recommend this. For MacOS and Android targets it will be better use JVM target for Kotlin instead of Kotlin/Native. Performance and developer experience will be much better this way.

If you really want to use Kotlin/Native you need first compile your java library using Java AOT for every native target, and then use Kotlin/Native cinterop.

JNI is completely opposite technology, it allows to use native libraries in JVM, not other way around.

Upvotes: 0

Related Questions