jjzjj

javaagents

全部标签

java - java是否有任何机制让VM在不使用javaagent等的情况下跟踪自身的方法调用?

我想在运行中构建调用图,从任意方法调用或新线程开始,这更容易,从正在运行的JVM本身开始。(该软件将成为负载测试另一个使用调用图的软件的测试夹具)我知道有一些SPI接口(interface),但看起来您需要使用它们运行-javaagent标志。我想直接在VM本身中访问它。理想情况下,我希望获取每个方法调用的进入和退出的回调、该方法调用的参数以及该方法中的时间。显然在一个线程内。我知道AOP可能可以做到这一点,但我只是想知道JDK中是否有工具可以让我捕捉到这一点。 最佳答案 JVM没有提供这样的API—即使对于以-javaagent开

java - 程序启动后启动 Java 代理

是否可以在虚拟机从同一个VM中启动后插入javaagent?假设我们在jarmyagent.jar中有一个代理,其中包含适当的元数据设置和一个已经实现的agentmain方法。现在用户程序调用了一个API调用,这应该会导致代理的插入,以便它可以重新定义类。能做到吗?怎么做? 最佳答案 https://web.archive.org/web/20141014195801/http://dhruba.name/2010/02/07/creation-dynamic-loading-and-instrumentation-with-jav

java - 程序启动后启动 Java 代理

是否可以在虚拟机从同一个VM中启动后插入javaagent?假设我们在jarmyagent.jar中有一个代理,其中包含适当的元数据设置和一个已经实现的agentmain方法。现在用户程序调用了一个API调用,这应该会导致代理的插入,以便它可以重新定义类。能做到吗?怎么做? 最佳答案 https://web.archive.org/web/20141014195801/http://dhruba.name/2010/02/07/creation-dynamic-loading-and-instrumentation-with-jav

java - 在 Android 中使用 javaagent

我最近对​​DBC方法产生了兴趣。由于Java是我的“母语”语言,我查看了cofoja最近java-on-contracts.我主要开发Android软件,所以我自然希望能够在手机上使用合约。这两个项目都需要使用类似的东西java-javaagent:path/to/cofoja-.jar作为JVM参数。是否可以使用此JVM参数在手机上启动apk?dalvik甚至支持这种参数吗?我怎么能传递这个参数来启动应用程序呢?我不知道如何开始。也许通过ant脚本? 最佳答案 在android上最接近javaagent的是检测:http://d

java - 如何抑制 "Picked up JAVA_TOOL_OPTIONS: -javaagent:/usr/share/java/jayatanaag.jar"消息

我使用的是Ubuntu15.04和Java1.7。更新到15.04后,每当我键入任何Java命令时,我都会收到如下消息:PickedupJAVA_TOOL_OPTIONS:-javaagent:/usr/share/java/jayatanaag.jar例如:hduser@ubuntu:~$java-versionPickedupJAVA_TOOL_OPTIONS:-javaagent:/usr/share/java/jayatanaag.jarjavaversion"1.7.0_21"Java(TM)SERuntimeEnvironment(build1.7.0_21-b11)Jav

java - 如何在不停止 JVM 的情况下将 Javaagent 添加到 JVM?

我希望在不停止应用程序的情况下分析Java应用程序。我可以在应用程序运行时以某种方式添加Javaagent吗? 最佳答案 见StartingaJavaagentafterprogramstart.链接到http://dhruba.name/2010/02/07/creation-dynamic-loading-and-instrumentation-with-javaagents/在“运行时动态加载javaagent”下提供了工作示例:publicstaticvoidloadAgent()throwsException{String

java - 启动 Scala 解释器时的 "Picked up JAVA_TOOL_OPTIONS: -javaagent:/usr/share/java/jayatanaag.jar"

在Ubuntu14.04中运行Scala解释器时,我在第一行打印了以下消息:PickedupJAVA_TOOL_OPTIONS:-javaagent:/usr/share/java/jayatanaag.jar接着是熟悉的“欢迎使用Scala”消息。我很担心,因为我以前在运行Scala时没有看到过-这是什么意思,是否危险等?显然环境变量$JAVA_TOOL_OPTIONS设置为-javaagent:/usr/share/java/jayatanaag.jar-我没有设置,但做了什么为什么?我可以安全地取消设置吗?附加信息:最近安装的AndroidStudioJAR名称中的“ayatan

java - 关于javaagents的教程

已结束。此问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提出有关书籍、工具、软件库等方面的建议的问题。您可以编辑问题,以便用事实和引用来回答它。关闭5年前。Improvethisquestion我想了解一些关于javaagents的知识,但研究起来并不容易。大部分结果是指JADE。我知道java代理可能意味着两件事:用Java编写的代理是代理的化身分布式系统的概念。用于增强JVM工作的低级软件组件,例如作为分析器、代码覆盖工具等我发现了类似的问题here,但不幸的是它也指的是版本1。你知道关于javaagent版本2的任何文章、初学者教程、示例项

TransmittableThreadLocal通过javaAgent技术实现线程传递(并且支持ForkJoin)

感谢TTL作者在我上一篇文章评论,让我知道了通过官方文档去全面了解其使用方式及其支持的重要性。所以官方文档先贴出来~alibaba/transmittable-thread-local:?TransmittableThreadLocal(TTL),themissingJava™stdlib(simple&0-dependency)forframework/middleware,provideanenhancedInheritableThreadLocalthattransmitsvaluesbetweenthreadsevenusingthreadpoolingcomponents.(gith

TransmittableThreadLocal通过javaAgent技术实现线程传递(并且支持ForkJoin)

感谢TTL作者在我上一篇文章评论,让我知道了通过官方文档去全面了解其使用方式及其支持的重要性。所以官方文档先贴出来~alibaba/transmittable-thread-local:?TransmittableThreadLocal(TTL),themissingJava™stdlib(simple&0-dependency)forframework/middleware,provideanenhancedInheritableThreadLocalthattransmitsvaluesbetweenthreadsevenusingthreadpoolingcomponents.(gith