Property definitions

jvm $ JavaVMBuilder :: defaultinit
# Utility to select options to create the VM using `create_jvm`
#
# Usage example:
#
# ~~~~nitish
# var builder = new JavaVMBuilder
# builder.options.add "-Djava.class.path=."
# var jvm = builder.create_jvm
# var env = builder.jni_env
# ~~~~
class JavaVMBuilder

	# Version code of the JVM requested by `create_jvm`
	#
	# Default at 0x00010002 for `JNI_VERSION_1_2`.
	var version = 0x00010002 is writable

	# Additional option strings
	var options = new Array[String]

	# Create a JVM instance, or return `null` on error
	fun create_jvm: nullable JavaVM
	do
		var args = new JavaVMInitArgs
		args.version = version
		args.set_default
		args.n_options = options.length

		var c_options = new JavaVMOptionArray(options.length)
		for o in options.length.times do
			var option = options[o]
			var c_option = c_options[o]
			c_option.string = option
		end

		args.options = c_options

		var jvm = new JavaVM(args)

		args.free
		c_options.free

		if jvm.address_is_null then return null
		return jvm
	end
end
lib/jvm/jvm.nit:40,1--85,3