Java / JVMTI:Agent_OnLoad中JavaVM参数的用法(JavaVM,char *,void)

时间:2015-03-29 16:17:13

标签: java oracle jvm java-native-interface jvmti

我目前正在第一次与JVMTI合作。

如果出现任何问题,我主要使用JVM(TM) Tool Interface Documentation

但我无法找到的是:除了通过调用GetEnv(...)获取环境之外,JavaVM参数可以用于?这是唯一的目的吗?

我无法在JavaVM类本身上找到任何进一步的文档,特别是在这个参数上也找不到。可能我只是盲目的,有人可以指出我正确的方向(解释,文档,教程等)。

这里有一些关于参数用途的典型示例代码到目前为止我已经看到了:

JNIEXPORT jint JNICALL Agent_OnLoad(JavaVM *vm, char *options, void *reserved) {
  jvmtiEnv              *jvmti;
  jvmtiError             error;
  jint                   res;
  jvmtiCapabilities      capabilities;
  jvmtiEventCallbacks    callbacks;

  res = (*vm)->GetEnv(vm, (void **)&jvmti, JVMTI_VERSION_1);
  // Here the code goes on
}

1 个答案:

答案 0 :(得分:1)

JavaVM结构是Java Invocation API的一部分。

它包含以下功能:

  • GETENV
  • DestroyJavaVM
  • AttachCurrentThread
  • AttachCurrentThreadAsDaemon
  • DetachCurrentThread