首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用javaagent获取程序参数

使用javaagent获取程序参数
EN

Stack Overflow用户
提问于 2017-01-11 09:07:23
回答 2查看 505关注 0票数 0

我正在尝试使用javaagent获取主程序代理。假设我输入了如下内容:

代码语言:javascript
复制
java -jar -javaagent:[path of agent file] foo.jar arg0 arg1 arg2

javaagent应打印:

代码语言:javascript
复制
arg0 arg1 arg2

我试过使用下面的代码:

代码语言:javascript
复制
public static void premain(String ignoredArgs, Instrumentation ignoredVar){
    RuntimeMXBean runtimeMXBean = ManagementFactory.getRuntimeMXBean();
    List<String> arguments = runtimeMXBean.getInputArguments();
    System.out.println(arguments);
}

但它只打印-javaagent参数和自身之前的参数。有什么帮助吗?

EN

回答 2

Stack Overflow用户

发布于 2018-08-24 16:48:49

我的方法是使用代理本身检测所有public static main(String[] args)方法,以将执行重定向到自定义侦听器,并传递调用者的参数。

然后,在第一次执行侦听器(您感兴趣的main方法)时,您可以访问这些参数,此外,您还可以禁用该特定指令插入(以避免将来加载包含main方法的类时的开销),也可以禁用侦听器本身(以防此时检测了多个main方法)

票数 1
EN

Stack Overflow用户

发布于 2017-01-11 09:37:19

不要紧,找到了答案:

代码语言:javascript
复制
System.out.println(System.getProperty("sun.java.command"));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41581172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档