使用 java 代理时出错
Posted
技术标签:
【中文标题】使用 java 代理时出错【英文标题】:Error while using java agent 【发布时间】: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方法运行良好。
【问题讨论】:
您使用什么 JDK 版本来构建您的分析器和应用程序? 请查看这篇文章,看看是否有任何适用于您的情况:***.com/questions/100107/… 【参考方案1】:你确定你在 JDK6 上运行你的目标 JVM 吗? JDK 7 加强了对堆栈映射帧的检查,当字节码被不知道这些更改的工具修改时,这可能导致此类 VerifyError 异常。
仔细检查目标 JVM,如果您发现您使用的是 JDK 7,您可以切换到 JDK 6 或使用“-XX:-UseSplitVerifier”开关将验证程序更改回 JDK 6 版本。
【讨论】:
如何使用“-XX:-UseSplitVerifier”以上是关于使用 java 代理时出错的主要内容,如果未能解决你的问题,请参考以下文章
运行 Web 服务客户端和代理时出错,严重:JDeveloper 12c 中的 java.io.FileNotFoundException: ./config/jps-config.xml
java使用反射实现动态代理时,抛出UndeclaredThrowableException异常