gpt4 book ai didi

java - JVMTI 获取被调用类/文件的名称

转载 作者:行者123 更新时间:2023-11-29 09:20:06 27 4
gpt4 key购买 nike

我试图通读整个 jvmti 文档,但没有找到解决问题的方法。

我想获取在命令行中用于调用程序的类/文件的名称:

java -agentpath:<pathToAgent> <calledJavaProgram>

在大写的情况下,我想获取 < calledJavaProgram > 的名称。

GetSourceFileName(jclass klass,...) 只给我在参数列表中设置的“klass”的名称,但自从我启动程序后我什至不知道这个...对吧?

是否有(其他)方法获得此名称?

谢谢你的帮助马库斯 G.

最佳答案

根据JNI文档中,JavaVMInitArgs 结构用于从 native 代码创建新的 VM,所以我认为这是一个转移注意力的问题。据我所知,在 JVMTI 或 Java 中都没有 API 访问命令行参数。

你可以做一些事情来使用 main 方法找出类的名称:

  1. 使用 JNI 调用一个 Java 方法 works it out .
  2. 使用 BCI 修改所有主要方法并对您的代理执行 JNI 回调,第一个被调用的就是您想要的那个。这还允许您获取 args[] 数组。

关于java - JVMTI 获取被调用类/文件的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7041926/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com