buildJavaVMInitArgs

context(placement: NativePlacement)
inline fun buildJavaVMInitArgs(version: JniVersion, optionsCount: Int, ignoreUnrecognized: Boolean = false, block: JavaVMInitArgsBuilder.() -> Unit): JavaVMInitArgs(source)

Allocates and initializes JavaVMInitArgs.

Instead of writing

val options = allocArray<JavaVMOption>(4)
var i = 0
options[i++].option = "-Djava.compiler=NONE" // disable JIT
options[i++].option = "-Djava.class.path=C:\\myclasses" // user classes
options[i++].option = "-Djava.library.path=C:\\mylibs" // set native library path
options[i++].option = "-verbose:jni" // print JNI-related messages

val args = alloc<JavaVMInitArgsStruct>()
args.version = JNI.v21
args.ignoreUnrecognized = false.toJBoolean()
args.nOptions = i
args.options = options

You may write

val args = buildJavaVMInitArgs(JNI.v21, 4) {
option("-Djava.compiler=NONE") // disable JIT
option("-Djava.class.path=C:\\myclasses") // user classes
option("-Djava.library.path=C:\\mylibs") // set native library path
option("-verbose:jni") // print JNI-related messages
}

Which will be inlined in the code above.

Parameters

count

size of an array to allocate

block

array initializer block

See also