jni

package module
v0.0.0-...-08e68de Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 24, 2023 License: MIT Imports: 3 Imported by: 3

README

jni

方便集成 JNI 代码的 Go 库。

完整支持所有 JNI 功能函数:https://docs.oracle.com/javase/8/docs/technotes/guides/jni/spec/functions.html

配合 https://github.com/ClarkGuan/gojni 使用,方便 Java 与 Go 代码通信。

安装

安装前准备:

使用举例

我们假设您已经安装 JDK、Go 以及 C 编译器,这里以 MacOS 平台为例:

  • 目录结构
.
└── src
    └── java
        └── com
            └── demo
                └── Main.java
  • 编写 Java 源代码
package com.demo;

public class Main {
    static {
        System.loadLibrary("hello");
    }

    public static void main(String[] args) {
        nativeHello();
        System.out.println(stringFromJNI());
    }

    private static native void nativeHello();

    private static native String stringFromJNI();
}
gojni src/java/com/demo/Main.java
  • 此时在目录中生成文件 libs.clibs.go,我们修改 libs.go 文件内容如下:
package main

//
// #include <stdlib.h>
// #include <stddef.h>
// #include <stdint.h>
import "C"
import (
	"fmt"

	"github.com/ClarkGuan/jni"
)

//export jniOnLoad
func jniOnLoad(vm uintptr) {
	fmt.Println("JNI_OnLoad")
}

//export jniOnUnload
func jniOnUnload(vm uintptr) {
	fmt.Println("JNI_OnUnload")
}

//export jni_com_demo_nativeHello1
func jni_com_demo_nativeHello1(env uintptr, clazz uintptr) {
	fmt.Println("native hello form golang")
}

//export jni_com_demo_stringFromJNI2
func jni_com_demo_stringFromJNI2(env uintptr, clazz uintptr) uintptr {
	return jni.Env(env).NewString("This is string from Golang code!!!")
}

运行下面命令

go get github.com/ClarkGuan/jni@latest

将本 golang 库引入到 go.mod 文件中。

  • 运行 go build 生成 Mac 上运行的动态库文件:
go build -buildmode=c-shared -ldflags="-w -s" -v -x -o libhello.dylib

注意:需要将 JNI 的头文件引入,否则 C 编译器可能找不到。使用环境变量 CGO_CFLAGS:

CGO_CFLAGS="-I$JAVA_HOME/include -I$JAVA_HOME/include/darwin" go build -buildmode=c-shared -ldflags="-w -s" -v -x -o libhello.dylib

或者使用前面下载的 includejni 工具:

includejni go build -buildmode=c-shared -ldflags="-w -s" -v -x -o libhello.dylib

注意

includejni 工具只是帮您设置 CGO_CFLAGSCGO_CXXFLAGS 环境变量。如果您可以定义 localhost 的 JDK 头文件位置,则完全不需要此工具。

  • 编译 Java 源码
javac src/java/com/demo/Main.java
  • libhello.dylib 放入 Java 虚拟机可以找到的位置(通过 Java 环境变量 java.library.path 指定)

  • 运行 Java 程序

java -cp src com.demo.Main
  • 运行结果
JNI_OnLoad
native hello form golang
This is string from Golang code!!!

Documentation

Index

Constants

View Source
const (
	JNI_VERSION_1_1 = 0x00010001
	JNI_VERSION_1_2 = 0x00010002
	JNI_VERSION_1_4 = 0x00010004
	JNI_VERSION_1_6 = 0x00010006
	JNI_VERSION_1_8 = 0x00010008
	JNI_VERSION_9   = 0x00090000
	JNI_VERSION_10  = 0x000a0000

	JNI_FALSE = 0
	JNI_TRUE  = 1

	JNI_OK        = 0    /* success */
	JNI_ERR       = (-1) /* unknown error */
	JNI_EDETACHED = (-2) /* thread detached from the VM */
	JNI_EVERSION  = (-3) /* JNI version error */
	JNI_ENOMEM    = (-4) /* not enough memory */
	JNI_EEXIST    = (-5) /* VM already created */
	JNI_EINVAL    = (-6) /* invalid arguments */

	JNI_COMMIT = 1
	JNI_ABORT  = 2
)

Variables

This section is empty.

Functions

func Bool

func Bool(b uint8) bool

func ByteSlicePtr

func ByteSlicePtr(b []byte) unsafe.Pointer

func CFree

func CFree(p unsafe.Pointer)

func CMalloc

func CMalloc(capacity int) unsafe.Pointer

Types

type Env

type Env uintptr

func (Env) AllocObject

func (env Env) AllocObject(clazz Jclass) Jobject

func (Env) CallBooleanMethodA

func (env Env) CallBooleanMethodA(obj Jobject, methodID JmethodID, args ...Jvalue) bool

func (Env) CallByteMethodA

func (env Env) CallByteMethodA(obj Jobject, methodID JmethodID, args ...Jvalue) byte

func (Env) CallCharMethodA

func (env Env) CallCharMethodA(obj Jobject, methodID JmethodID, args ...Jvalue) uint16

func (Env) CallDoubleMethodA

func (env Env) CallDoubleMethodA(obj Jobject, methodID JmethodID, args ...Jvalue) float64

func (Env) CallFloatMethodA

func (env Env) CallFloatMethodA(obj Jobject, methodID JmethodID, args ...Jvalue) float32

func (Env) CallIntMethodA

func (env Env) CallIntMethodA(obj Jobject, methodID JmethodID, args ...Jvalue) int

func (Env) CallLongMethodA

func (env Env) CallLongMethodA(obj Jobject, methodID JmethodID, args ...Jvalue) int64

func (Env) CallNonvirtualBooleanMethodA

func (env Env) CallNonvirtualBooleanMethodA(obj Jobject, clazz Jclass, methodID JmethodID, args ...Jvalue) bool

func (Env) CallNonvirtualByteMethodA

func (env Env) CallNonvirtualByteMethodA(obj Jobject, clazz Jclass, methodID JmethodID, args ...Jvalue) byte

func (Env) CallNonvirtualCharMethodA

func (env Env) CallNonvirtualCharMethodA(obj Jobject, clazz Jclass, methodID JmethodID, args ...Jvalue) uint16

func (Env) CallNonvirtualDoubleMethodA

func (env Env) CallNonvirtualDoubleMethodA(obj Jobject, clazz Jclass, methodID JmethodID, args ...Jvalue) float64

func (Env) CallNonvirtualFloatMethodA

func (env Env) CallNonvirtualFloatMethodA(obj Jobject, clazz Jclass, methodID JmethodID, args ...Jvalue) float32

func (Env) CallNonvirtualIntMethodA

func (env Env) CallNonvirtualIntMethodA(obj Jobject, clazz Jclass, methodID JmethodID, args ...Jvalue) int

func (Env) CallNonvirtualLongMethodA

func (env Env) CallNonvirtualLongMethodA(obj Jobject, clazz Jclass, methodID JmethodID, args ...Jvalue) int64

func (Env) CallNonvirtualObjectMethodA

func (env Env) CallNonvirtualObjectMethodA(obj Jobject, clazz Jclass, methodID JmethodID, args ...Jvalue) Jobject

func (Env) CallNonvirtualShortMethodA

func (env Env) CallNonvirtualShortMethodA(obj Jobject, clazz Jclass, methodID JmethodID, args ...Jvalue) int16

func (Env) CallNonvirtualVoidMethodA

func (env Env) CallNonvirtualVoidMethodA(obj Jobject, clazz Jclass, methodID JmethodID, args ...Jvalue)

func (Env) CallObjectMethodA

func (env Env) CallObjectMethodA(obj Jobject, methodID JmethodID, args ...Jvalue) Jobject

func (Env) CallShortMethodA

func (env Env) CallShortMethodA(obj Jobject, methodID JmethodID, args ...Jvalue) int16

func (Env) CallStaticBooleanMethodA

func (env Env) CallStaticBooleanMethodA(clazz Jclass, methodID JmethodID, args ...Jvalue) bool

func (Env) CallStaticByteMethodA

func (env Env) CallStaticByteMethodA(clazz Jclass, methodID JmethodID, args ...Jvalue) byte

func (Env) CallStaticCharMethodA

func (env Env) CallStaticCharMethodA(clazz Jclass, methodID JmethodID, args ...Jvalue) uint16

func (Env) CallStaticDoubleMethodA

func (env Env) CallStaticDoubleMethodA(clazz Jclass, methodID JmethodID, args ...Jvalue) float64

func (Env) CallStaticFloatMethodA

func (env Env) CallStaticFloatMethodA(clazz Jclass, methodID JmethodID, args ...Jvalue) float32

func (Env) CallStaticIntMethodA

func (env Env) CallStaticIntMethodA(clazz Jclass, methodID JmethodID, args ...Jvalue) int

func (Env) CallStaticLongMethodA

func (env Env) CallStaticLongMethodA(clazz Jclass, methodID JmethodID, args ...Jvalue) int64

func (Env) CallStaticObjectMethodA

func (env Env) CallStaticObjectMethodA(clazz Jclass, methodID JmethodID, args ...Jvalue) Jobject

func (Env) CallStaticShortMethodA

func (env Env) CallStaticShortMethodA(clazz Jclass, methodID JmethodID, args ...Jvalue) int16

func (Env) CallStaticVoidMethodA

func (env Env) CallStaticVoidMethodA(cls Jclass, methodID JmethodID, args ...Jvalue)

func (Env) CallVoidMethodA

func (env Env) CallVoidMethodA(obj Jobject, methodID JmethodID, args ...Jvalue)

func (Env) DeleteGlobalRef

func (env Env) DeleteGlobalRef(gref Jobject)

func (Env) DeleteLocalRef

func (env Env) DeleteLocalRef(obj Jobject)

func (Env) DeleteWeakGlobalRef

func (env Env) DeleteWeakGlobalRef(ref Jweak)

func (Env) EnsureLocalCapacity

func (env Env) EnsureLocalCapacity(capacity int) int

func (Env) ExceptionCheck

func (env Env) ExceptionCheck() bool

func (Env) ExceptionClear

func (env Env) ExceptionClear()

func (Env) ExceptionDescribe

func (env Env) ExceptionDescribe()

func (Env) ExceptionOccurred

func (env Env) ExceptionOccurred() Jthrowable

func (Env) FatalError

func (env Env) FatalError(msg string)

func (Env) FindClass

func (env Env) FindClass(name string) Jclass

func (Env) FromReflectedField

func (env Env) FromReflectedField(field Jobject) JfieldID

func (Env) FromReflectedMethod

func (env Env) FromReflectedMethod(method Jobject) JmethodID

func (Env) GetArrayLength

func (env Env) GetArrayLength(array Jarray) int

func (Env) GetBooleanArrayElement

func (env Env) GetBooleanArrayElement(array JbooleanArray, index int) bool

func (Env) GetBooleanArrayRegion

func (env Env) GetBooleanArrayRegion(array JbooleanArray, start int, buf []bool)

func (Env) GetBooleanField

func (env Env) GetBooleanField(obj Jobject, fieldID JfieldID) bool

func (Env) GetByteArrayElement

func (env Env) GetByteArrayElement(array JbyteArray, index int) byte

func (Env) GetByteArrayRegion

func (env Env) GetByteArrayRegion(array JbyteArray, start int, buf []byte)

func (Env) GetByteField

func (env Env) GetByteField(obj Jobject, fieldID JfieldID) byte

func (Env) GetCharArrayElement

func (env Env) GetCharArrayElement(array JcharArray, index int) uint16

func (Env) GetCharArrayRegion

func (env Env) GetCharArrayRegion(array JcharArray, start int, buf []uint16)

func (Env) GetCharField

func (env Env) GetCharField(obj Jobject, fieldID JfieldID) uint16

func (Env) GetDirectBufferAddress

func (env Env) GetDirectBufferAddress(buf Jobject) unsafe.Pointer

func (Env) GetDirectBufferCapacity

func (env Env) GetDirectBufferCapacity(buf Jobject) int

func (Env) GetDoubleArrayElement

func (env Env) GetDoubleArrayElement(array JdoubleArray, index int) float64

func (Env) GetDoubleArrayRegion

func (env Env) GetDoubleArrayRegion(array JdoubleArray, start int, buf []float64)

func (Env) GetDoubleField

func (env Env) GetDoubleField(obj Jobject, fieldID JfieldID) float64

func (Env) GetFieldID

func (env Env) GetFieldID(clazz Jclass, name string, sig string) JfieldID

func (Env) GetFloatArrayElement

func (env Env) GetFloatArrayElement(array JfloatArray, index int) float32

func (Env) GetFloatArrayRegion

func (env Env) GetFloatArrayRegion(array JfloatArray, start int, buf []float32)

func (Env) GetFloatField

func (env Env) GetFloatField(obj Jobject, fieldID JfieldID) float32

func (Env) GetIntArrayElement

func (env Env) GetIntArrayElement(array JintArray, index int) int

func (Env) GetIntArrayRegion

func (env Env) GetIntArrayRegion(array JintArray, start int, buf []int32)

func (Env) GetIntField

func (env Env) GetIntField(obj Jobject, fieldID JfieldID) int

func (Env) GetJavaVM

func (env Env) GetJavaVM() (VM, int)

func (Env) GetLongArrayElement

func (env Env) GetLongArrayElement(array JlongArray, index int) int64

func (Env) GetLongArrayRegion

func (env Env) GetLongArrayRegion(array JlongArray, start int, buf []int64)

func (Env) GetLongField

func (env Env) GetLongField(obj Jobject, fieldID JfieldID) int64

func (Env) GetMethodID

func (env Env) GetMethodID(clazz Jclass, name string, sig string) JmethodID

func (Env) GetModule

func (env Env) GetModule(clazz Jclass) Jobject

func (Env) GetObjectArrayElement

func (env Env) GetObjectArrayElement(array JobjectArray, index int) Jobject

func (Env) GetObjectClass

func (env Env) GetObjectClass(obj Jobject) Jclass

func (Env) GetObjectField

func (env Env) GetObjectField(obj Jobject, fieldID JfieldID) Jobject

func (Env) GetObjectRefType

func (env Env) GetObjectRefType(obj Jobject) RefType

func (Env) GetPrimitiveArrayCritical

func (env Env) GetPrimitiveArrayCritical(array Jarray) unsafe.Pointer

func (Env) GetShortArrayElement

func (env Env) GetShortArrayElement(array JshortArray, index int) int16

func (Env) GetShortArrayRegion

func (env Env) GetShortArrayRegion(array JshortArray, start int, buf []int16)

func (Env) GetShortField

func (env Env) GetShortField(obj Jobject, fieldID JfieldID) int16

func (Env) GetStaticBooleanField

func (env Env) GetStaticBooleanField(clazz Jclass, fieldID JfieldID) bool

func (Env) GetStaticByteField

func (env Env) GetStaticByteField(clazz Jclass, fieldID JfieldID) byte

func (Env) GetStaticCharField

func (env Env) GetStaticCharField(clazz Jclass, fieldID JfieldID) uint16

func (Env) GetStaticDoubleField

func (env Env) GetStaticDoubleField(clazz Jclass, fieldID JfieldID) float64

func (Env) GetStaticFieldID

func (env Env) GetStaticFieldID(clazz Jclass, name string, sig string) JfieldID

func (Env) GetStaticFloatField

func (env Env) GetStaticFloatField(clazz Jclass, fieldID JfieldID) float32

func (Env) GetStaticIntField

func (env Env) GetStaticIntField(clazz Jclass, fieldID JfieldID) int

func (Env) GetStaticLongField

func (env Env) GetStaticLongField(clazz Jclass, fieldID JfieldID) int64

func (Env) GetStaticMethodID

func (env Env) GetStaticMethodID(clazz Jclass, name string, sig string) JmethodID

func (Env) GetStaticObjectField

func (env Env) GetStaticObjectField(clazz Jclass, fieldID JfieldID) Jobject

func (Env) GetStaticShortField

func (env Env) GetStaticShortField(clazz Jclass, fieldID JfieldID) int16

func (Env) GetStringLength

func (env Env) GetStringLength(str Jstring) int

func (Env) GetStringUTF

func (env Env) GetStringUTF(ptr Jstring) []byte

func (Env) GetSuperclass

func (env Env) GetSuperclass(sub Jclass) Jclass

func (Env) GetVersion

func (env Env) GetVersion() int

func (Env) IsAssignableFrom

func (env Env) IsAssignableFrom(sub Jclass, sup Jclass) bool

func (Env) IsInstanceOf

func (env Env) IsInstanceOf(obj Jobject, clazz Jclass) bool

func (Env) IsSameObject

func (env Env) IsSameObject(obj1 Jobject, obj2 Jobject) bool

func (Env) MonitorEnter

func (env Env) MonitorEnter(obj Jobject) int

func (Env) MonitorExit

func (env Env) MonitorExit(obj Jobject) int

func (Env) NewBooleanArray

func (env Env) NewBooleanArray(len int) JbooleanArray

func (Env) NewByteArray

func (env Env) NewByteArray(len int) JbyteArray

func (Env) NewCharArray

func (env Env) NewCharArray(len int) JcharArray

func (Env) NewDirectByteBuffer

func (env Env) NewDirectByteBuffer(address unsafe.Pointer, capacity int) Jobject

func (Env) NewDoubleArray

func (env Env) NewDoubleArray(len int) JdoubleArray

func (Env) NewFloatArray

func (env Env) NewFloatArray(len int) JfloatArray

func (Env) NewGlobalRef

func (env Env) NewGlobalRef(lobj Jobject) Jobject

func (Env) NewIntArray

func (env Env) NewIntArray(len int) JintArray

func (Env) NewLocalRef

func (env Env) NewLocalRef(ref Jobject) Jobject

func (Env) NewLongArray

func (env Env) NewLongArray(len int) JlongArray

func (Env) NewObjectA

func (env Env) NewObjectA(clazz Jclass, methodID JmethodID, args ...Jvalue) Jobject

func (Env) NewObjectArray

func (env Env) NewObjectArray(len int, clazz Jclass, init Jobject) JobjectArray

func (Env) NewShortArray

func (env Env) NewShortArray(len int) JshortArray

func (Env) NewString

func (env Env) NewString(s string) Jstring

func (Env) NewWeakGlobalRef

func (env Env) NewWeakGlobalRef(obj Jobject) Jweak

func (Env) PopLocalFrame

func (env Env) PopLocalFrame(result Jobject) Jobject

func (Env) PushLocalFrame

func (env Env) PushLocalFrame(capacity int) int

func (Env) ReleasePrimitiveArrayCritical

func (env Env) ReleasePrimitiveArrayCritical(array Jarray, carray unsafe.Pointer, mode int)

func (Env) SetBooleanArrayElement

func (env Env) SetBooleanArrayElement(array JbooleanArray, index int, v bool)

func (Env) SetBooleanArrayRegion

func (env Env) SetBooleanArrayRegion(array JbooleanArray, start int, buf []bool)

func (Env) SetBooleanField

func (env Env) SetBooleanField(obj Jobject, fieldID JfieldID, val bool)

func (Env) SetByteArrayElement

func (env Env) SetByteArrayElement(array JbyteArray, index int, v byte)

func (Env) SetByteArrayRegion

func (env Env) SetByteArrayRegion(array JbyteArray, start int, buf []byte)

func (Env) SetByteField

func (env Env) SetByteField(obj Jobject, fieldID JfieldID, val byte)

func (Env) SetCharArrayElement

func (env Env) SetCharArrayElement(array JcharArray, index int, v uint16)

func (Env) SetCharArrayRegion

func (env Env) SetCharArrayRegion(array JcharArray, start int, buf []uint16)

func (Env) SetCharField

func (env Env) SetCharField(obj Jobject, fieldID JfieldID, val uint16)

func (Env) SetDoubleArrayElement

func (env Env) SetDoubleArrayElement(array JdoubleArray, index int, v float64)

func (Env) SetDoubleArrayRegion

func (env Env) SetDoubleArrayRegion(array JdoubleArray, start int, buf []float64)

func (Env) SetDoubleField

func (env Env) SetDoubleField(obj Jobject, fieldID JfieldID, val float64)

func (Env) SetFloatArrayElement

func (env Env) SetFloatArrayElement(array JfloatArray, index int, v float32)

func (Env) SetFloatArrayRegion

func (env Env) SetFloatArrayRegion(array JfloatArray, start int, buf []float32)

func (Env) SetFloatField

func (env Env) SetFloatField(obj Jobject, fieldID JfieldID, val float32)

func (Env) SetIntArrayElement

func (env Env) SetIntArrayElement(array JintArray, index int, v int)

func (Env) SetIntArrayRegion

func (env Env) SetIntArrayRegion(array JintArray, start int, buf []int32)

func (Env) SetIntField

func (env Env) SetIntField(obj Jobject, fieldID JfieldID, val int)

func (Env) SetLongArrayElement

func (env Env) SetLongArrayElement(array JlongArray, index int, v int64)

func (Env) SetLongArrayRegion

func (env Env) SetLongArrayRegion(array JlongArray, start int, buf []int64)

func (Env) SetLongField

func (env Env) SetLongField(obj Jobject, fieldID JfieldID, val int64)

func (Env) SetObjectArrayElement

func (env Env) SetObjectArrayElement(array JobjectArray, index int, val Jobject)

func (Env) SetObjectField

func (env Env) SetObjectField(obj Jobject, fieldID JfieldID, val Jobject)

func (Env) SetShortArrayElement

func (env Env) SetShortArrayElement(array JshortArray, index int, v int16)

func (Env) SetShortArrayRegion

func (env Env) SetShortArrayRegion(array JshortArray, start int, buf []int16)

func (Env) SetShortField

func (env Env) SetShortField(obj Jobject, fieldID JfieldID, val int16)

func (Env) SetStaticBooleanField

func (env Env) SetStaticBooleanField(clazz Jclass, fieldID JfieldID, value bool)

func (Env) SetStaticByteField

func (env Env) SetStaticByteField(clazz Jclass, fieldID JfieldID, value byte)

func (Env) SetStaticCharField

func (env Env) SetStaticCharField(clazz Jclass, fieldID JfieldID, value uint16)

func (Env) SetStaticDoubleField

func (env Env) SetStaticDoubleField(clazz Jclass, fieldID JfieldID, value float64)

func (Env) SetStaticFloatField

func (env Env) SetStaticFloatField(clazz Jclass, fieldID JfieldID, value float32)

func (Env) SetStaticIntField

func (env Env) SetStaticIntField(clazz Jclass, fieldID JfieldID, value int)

func (Env) SetStaticLongField

func (env Env) SetStaticLongField(clazz Jclass, fieldID JfieldID, value int64)

func (Env) SetStaticObjectField

func (env Env) SetStaticObjectField(clazz Jclass, fieldID JfieldID, value Jobject)

func (Env) SetStaticShortField

func (env Env) SetStaticShortField(clazz Jclass, fieldID JfieldID, value int16)

func (Env) Throw

func (env Env) Throw(obj Jthrowable) int

func (Env) ThrowNew

func (env Env) ThrowNew(clazz Jclass, msg string) int

func (Env) ToReflectedField

func (env Env) ToReflectedField(cls Jclass, fieldID JfieldID, isStatic bool) Jobject

func (Env) ToReflectedMethod

func (env Env) ToReflectedMethod(cls Jclass, methodID JmethodID, isStatic bool) Jobject

type Jarray

type Jarray = uintptr

type JbooleanArray

type JbooleanArray = uintptr

type JbyteArray

type JbyteArray = uintptr

type JcharArray

type JcharArray = uintptr

type Jclass

type Jclass = uintptr

type JdoubleArray

type JdoubleArray = uintptr

type JfieldID

type JfieldID = uintptr

type JfloatArray

type JfloatArray = uintptr

type JintArray

type JintArray = uintptr

type JlongArray

type JlongArray = uintptr

type JmethodID

type JmethodID = uintptr

type Jobject

type Jobject = uintptr

type JobjectArray

type JobjectArray = uintptr

type JshortArray

type JshortArray = uintptr

type Jstring

type Jstring = uintptr

type Jthrowable

type Jthrowable = uintptr

type Jvalue

type Jvalue = uint64

func BooleanValue

func BooleanValue(b bool) Jvalue

func DoubleValue

func DoubleValue(f float64) Jvalue

func FloatValue

func FloatValue(f float32) Jvalue

func Int16Value

func Int16Value(i int16) Jvalue

func Int32Value

func Int32Value(i int32) Jvalue

func Int8Value

func Int8Value(i int8) Jvalue

func IntValue

func IntValue(i int) Jvalue

type Jweak

type Jweak = uintptr

type RefType

type RefType int
const (
	Invalid RefType = iota
	Local
	Global
	WeakGlobal
)

type VM

type VM uintptr

func (VM) AttachCurrentThread

func (vm VM) AttachCurrentThread() (Env, int)

func (VM) AttachCurrentThreadAsDaemon

func (vm VM) AttachCurrentThreadAsDaemon() (Env, int)

func (VM) DestroyJavaVM

func (vm VM) DestroyJavaVM() int

func (VM) DetachCurrentThread

func (vm VM) DetachCurrentThread() int

func (VM) GetEnv

func (vm VM) GetEnv(version int) (Env, int)

Directories

Path Synopsis
cmd
gen

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL