最近我使用 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/