【问题标题】:Error while using java agent使用 java 代理时出错
【发布时间】:2012-04-20 12:13:46
【问题描述】:

我尝试使用http://www.ibm.com/developerworks/java/library/j-jip/ 构建分析器

在命令提示符下执行时我的一个 java 应用程序

java -jar abc.jar 

提供所需的输出,但是当使用 javaagent 分析同一应用程序时会出错

java -javaagent:profiler.jar -jar abc.jar 

出现以下错误

Exception in thread "main" java.lang.VerifyError: Expecting a stackmap frame at
branch target 20 in method 
()V at offset 12
        at java.lang.Class.getDeclaredMethods0(Native Method)
        at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
        at java.lang.Class.getMethod0(Unknown Source)
        at java.lang.Class.getMethod(Unknown Source)
        at sun.launcher.LauncherHelper.getMainMethod(Unknown Source)
        at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

但也有一些swing应用程序使用上述javaagent方法运行良好。

【问题讨论】:

标签: java profiler javaagents


【解决方案1】:

你确定你在 JDK6 上运行你的目标 JVM 吗? JDK 7 加强了对堆栈映射帧的检查,当字节码被不知道这些更改的工具修改时,这可能导致此类 VerifyError 异常。

仔细检查目标 JVM,如果您发现您使用的是 JDK 7,您可以切换到 JDK 6 或使用“-XX:-UseSplitVerifier”开关将验证程序更改回 JDK 6 版本。

【讨论】:

  • 如何使用“-XX:-UseSplitVerifier”
猜你喜欢
  • 1970-01-01
  • 2015-09-06
  • 1970-01-01
  • 2011-05-25
  • 2014-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多