“没有兼容的附件提供程序可用”是什么意思

Cor*_*onA 4 java byte-buddy

最近,我使用字节伙伴开发了一个Java代理。eclipse中的开发很好,然后我将代理程序投入生产并发出以下消息:

No compatible attachment provider is available

以及从行开始的一些堆栈跟踪

static {
  ByteBuddyAgent.install();
}
Run Code Online (Sandbox Code Playgroud)

Cor*_*onA 6

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

不幸的是,java -version无论java是jdk还是jre,调用都不会返回(Java runtime Environment两者均显示该消息)。

在我的情况下(OS:Windows)这很棘手,因为较新的jsdk安装附加C:\ProgramData\Oracle\Java\javapath到系统路径,该路径包含jre而不是jdk。%JAVA_HOME%/bin通过此修改隐藏了以前添加的条目。当我删除条目时,C:\ProgramData\Oracle\Java\javapath一切正常。