Utility to select options to create the VM using create_jvm

Usage example:

var builder = new JavaVMBuilder
builder.options.add "-Djava.class.path=."
var jvm = builder.create_jvm
var env = builder.jni_env

Introduced properties

fun create_jvm: nullable JavaVM

jvm :: JavaVMBuilder :: create_jvm

Create a JVM instance, or return null on error
fun options: Array[String]

jvm :: JavaVMBuilder :: options

Additional option strings
protected fun options=(options: Array[String])

jvm :: JavaVMBuilder :: options=

Additional option strings
fun version: Int

jvm :: JavaVMBuilder :: version

Version code of the JVM requested by create_jvm
fun version=(version: Int)

jvm :: JavaVMBuilder :: version=

Version code of the JVM requested by create_jvm

Redefined properties

redef type SELF: JavaVMBuilder

jvm $ JavaVMBuilder :: SELF

Type of this instance, automatically specialized in every class

All properties

fun !=(other: nullable Object): Bool

core :: Object :: !=

Have self and other different values?
fun ==(other: nullable Object): Bool

core :: Object :: ==

Have self and other the same value?
type CLASS: Class[SELF]

core :: Object :: CLASS

The type of the class of self.
type SELF: Object

core :: Object :: SELF

Type of this instance, automatically specialized in every class
protected fun class_factory(name: String): CLASS

core :: Object :: class_factory

Implementation used by get_class to create the specific class.
fun class_name: String

core :: Object :: class_name

The class name of the object.
fun create_jvm: nullable JavaVM

jvm :: JavaVMBuilder :: create_jvm

Create a JVM instance, or return null on error
fun get_class: CLASS

core :: Object :: get_class

The meta-object representing the dynamic type of self.
fun hash: Int

core :: Object :: hash

The hash code of the object.
init init

core :: Object :: init

fun inspect: String

core :: Object :: inspect

Developer readable representation of self.
protected fun inspect_head: String

core :: Object :: inspect_head

Return "CLASSNAME:#OBJECTID".
intern fun is_same_instance(other: nullable Object): Bool

core :: Object :: is_same_instance

Return true if self and other are the same instance (i.e. same identity).
fun is_same_serialized(other: nullable Object): Bool

core :: Object :: is_same_serialized

Is self the same as other in a serialization context?
intern fun is_same_type(other: Object): Bool

core :: Object :: is_same_type

Return true if self and other have the same dynamic type.
intern fun object_id: Int

core :: Object :: object_id

An internal hash code for the object based on its identity.
fun options: Array[String]

jvm :: JavaVMBuilder :: options

Additional option strings
protected fun options=(options: Array[String])

jvm :: JavaVMBuilder :: options=

Additional option strings
fun output

core :: Object :: output

Display self on stdout (debug only).
intern fun output_class_name

core :: Object :: output_class_name

Display class name on stdout (debug only).
fun serialization_hash: Int

core :: Object :: serialization_hash

Hash value use for serialization
intern fun sys: Sys

core :: Object :: sys

Return the global sys object, the only instance of the Sys class.
abstract fun to_jvalue(env: JniEnv): JValue

core :: Object :: to_jvalue

fun to_s: String

core :: Object :: to_s

User readable representation of self.
fun version: Int

jvm :: JavaVMBuilder :: version

Version code of the JVM requested by create_jvm
fun version=(version: Int)

jvm :: JavaVMBuilder :: version=

Version code of the JVM requested by create_jvm
package_diagram jvm::JavaVMBuilder JavaVMBuilder core::Object Object jvm::JavaVMBuilder->core::Object

Parents

interface Object

core :: Object

The root of the class hierarchy.

Class definitions

jvm $ JavaVMBuilder
# 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