java - "No compatible attachment provider is available"是什么意思

标签 java byte-buddy

最近我使用 byte buddy 开发了一个 java 代理.在eclipse中开发没问题,然后我将agent投入生产,消息:

没有可用的兼容附件提供程序

连同来自行的一些堆栈跟踪

static {
  ByteBuddyAgent.install();
}

最佳答案

经过一番调试,我发现了问题所在。如果使用 jre 而不是 jdk 调用代理,则会出现消息“没有兼容的附件提供程序不可用”。

不幸的是,调用 java -version 不会返回 java 是 jdk 还是 jre(消息正在为两者显示 Java runtime Environment ).

在我的例子中(操作系统:Windows)这很棘手,因为较新的 jsdk 安装将 C:\ProgramData\Oracle\Java\javapath 附加到系统路径,其中包含一个 jre 而不是一个jdk。之前添加的条目 %JAVA_HOME%/bin 通过这次修改被隐藏了。当我删除条目 C:\ProgramData\Oracle\Java\javapath 时一切正常。

关于java - "No compatible attachment provider is available"是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49767683/

相关文章:

java - 表达式也可以是文字?

java - 删除二叉树——设计建议

java - 有没有办法让空变量在我的代码库中自动快速失败,除非它们被标记为 `@Nullable` ?

java - 当我在 ByteBuddy 生成的类中创建自定义构造函数时出现异常

java - 使用 ByteBuddy 在同一个类中检测多个方法

java - 为 Java 代理使用 Byte Buddy

java - Gson 类中的VerifyError

c# - 是二进制java序列化的输出等于c#序列化

java - 为什么集合不从排序列表中删除重复项?

java - 使用不带 -javaagent 参数的 ByteBuddy Java 代理