使用 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异常

使用 Nexus 代理存储库进行 Maven 打包时出错

尝试拦截 iOS 请求时 charles 代理出错,但 charles 代理证书已配置且受信任

当我将电子邮件放入有效负载时,Angular 代理出错

创建 Kafka 主题时出错:- 复制因子大于可用代理